CGIなどで、1つのフォルダに非常に多くのファイルを生成していった場合
OSが混乱してしまうといった風の噂を聞いたことがあるのですが、
フォルダにファイルを生成するだけならまだしも、それぞれのファイルを読み込んだり、書き込んだりといったファイル操作もともなってくると、
どのくらいのファイル数なら支障なく操作できるでしょうか。(処理速度も含め)
例えば、データベースにバイナリデータごと格納してしまったほうがよいのか
ファイルへのリンク情報のみを格納してバイナリデータはフォルダに入れて
利用したほうがよいのかといったことです。

A 回答 (2件)

 ありえません(笑)


 きっぱりと。

 どういう意味での混乱かは分かりませんが、ファイルが増えただけで処理できなくなるなんてことはありえません。
 あと、速度の低下についても、構造上、10万個あってもそれほど苦にはならないはずです(最近のHDDは特に)。

 ただし、MS-DOS形式でフォーマットされたディスクの場合(フロッピー等)には、ルートフォルダに限り、伝統的に144個までしか入れられない仕様になっています。

 また、いくつものプログラムが同時に動くことによって起こる混乱は、これは複数のプログラムがいっせいに同じファイルにアクセスしようとするために起こるのであり、これはプログラマーの責任です。
    • good
    • 0
この回答へのお礼

なるほど、10万個でもですか
よくわかりました。ありがとうございました。

お礼日時:2002/01/18 23:39

>OSが混乱してしまうといった風の噂を聞いたことがあるのですが、



混乱してしまうようでは、OSとしては問題でしょう(^^;
OSとしてはそれぐらい正しく動くのが当然ですし、
そうでないなら、OS等の選択に問題がありと考えます.

>どのくらいのファイル数なら支障なく操作できるでしょうか。(処理速度も含め)
いろんなケースが考えられるので、これだけの情報では回答は無理と思います。
ただ、ファイル数が多ければ、ファイルのオープン等で速度は低下してくるはずです。
ただ、それがどこから問題になるかと言われても,利用形態等もありますから、簡単にいくつとは言えないでしょう。
もちろんOSやら、デバイスやら、ファイルシステムにも影響受けますし。


あとは、ファイル数が多くなると問題になりそうなのは、ファイルのオープン、クローズの手間でしょう。
一度にオープンできるファイルの数は上限がありますから、ファイル数が多いと頻繁にファイルのオープン,クローズが必要になることが考えられますが,
これは処理的には重い部類になると思いますので、
少ない方がいいでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/01/18 23:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qcgiファイルを他のhtmlファイルと一緒にしないほうがいい理由があれば教えて下さい

私は会社でホームページ製作を担当していますがシステムに関しては素人なため、
フォームや検索などのCGIを外部の人に頼みました。
当社が使っているプロバイダーではcgiファイルをおくフォルダを指定しているのですが、
その人はcgiファイルをそこに入れずにhtmlファイルと同じフォルダ(index.htmlのあるフォルダ)に入れている作っているという状況です。
作っている方はプログラマーではなく、cgiもできるデザイナーです。

私が、cgiファイルをおくフォルダを変えなくていいのかと質問したところ、
動作はしているし、この方が作業がやりやすいと回答をもらいました。
が、このまま通常のhtmlファイルと同じ階層にcgiファイルをおいていいのか、また、このままで問題がおこらないのかを不安に思っています。
本当にcgiファイルを他のhtmlファイルと一緒にしていても問題ないのでしょうか?
一緒にしないほうがいい理由があれば、お教えいただければと思い質問させていただきました。
回答宜しくお願いします。

Aベストアンサー

特に問題はありません。
ファイル管理の面からフォルダを分けることがあります。
通常はHTMLと同じでも大丈夫です。
ただし、LOGファイルなども同じところに置く場合は、LOGファイルが直接読み込まれてしまう可能性があるので、その辺は注意が必要です。

QPerlで異なるフォルダからファイルをコピーし、ファイル名を変更する方法を教えてください

前回類似するお願いをしたのですが、
もう一度ご質問させてください。

<やりたいこと>
c:\scriptフォルダにある「copyAndRename.cgi」を
 起動し、ファイルコピーとRenameをする処理を
 行ないたい。

<ファイルコピーの内容>
C:\test1フォルダにあるファイル名「test.test.csv」
を、c:\test2フォルダにコピーする

<ファイルRenameの内容>
C:\test2フォルダにコピーした、ファイル
名「test.test.csv」の「.」をなくし「-」を置き換え、「test-test-csv」とファイル名に変更する処理をしたい。

<できていること>

(1)の処理は行なえているので問題ありません。
(2)の処理に関しては、以前の質問させていただいた
 回答から、下記のようなスクリプトを書き、実行した
 が、Renameされませんでした。
-----
$A="test.test.csv";

$B=$A;
$B=~s/\./-/; # ドットを全置換により[-]に変更。

rename $A,$B;
-----
実行している、「copyAndRename.cgi」が格納されている
c:\svriptフォルダに、「test.test.csv」をおいて
テストをしてみると正常に起動します。
renameを行なう際のパスの切り方がわかれば
解決できると思うのですが、わかりません。

初心者の質問で恐縮ですが、どなたかお教えください。

前回類似するお願いをしたのですが、
もう一度ご質問させてください。

<やりたいこと>
c:\scriptフォルダにある「copyAndRename.cgi」を
 起動し、ファイルコピーとRenameをする処理を
 行ないたい。

<ファイルコピーの内容>
C:\test1フォルダにあるファイル名「test.test.csv」
を、c:\test2フォルダにコピーする

<ファイルRenameの内容>
C:\test2フォルダにコピーした、ファイル
名「test.test.csv」の「.」をなくし「-」を置き換え、「test-test-csv」とファイル名に変更する処理をしたい。...続きを読む

Aベストアンサー

もっとスマートな解決方法があるかも知れません。

-----
$A="test.test.csv";

$B=$A;
$B=~s/\./-/g; # ドットを全置換により[-]に変更。

$path = "c:\\test2\\";
rename $path.$A, $path.$B;
-----

Qdatファイルを生成したい

サーバ上には存在しないdatファイルを新規で生成したいのですが、そのコーディングを教えていただけませんでしょうか?(もし不可能なら既存のdatファイルをコピーして生成する方法でもいいです)

また、生成したdatファイルはパーミッションを変えなくても書き込み&読み込み可能でしょうか?もし不可能ならCGIからパーミッションを変更するしか書き込み&読み込む方法はないのでしょうか?できればその方法もお教え願います。

Aベストアンサー

普通に上書きopenすればOKかと。

open D, "> data.dat";
print D "\n";
close D;
chmod 0666, "data.dat"; # これは無くてもいいです

これでdata.datが生成されます。
パーミッションは基本的に変更しなくても読み書きできます。

Qファイルを自動生成させたいのですが・・・

すいません初心者ですが・・・
設置しているCGIと同じディレクトリに「test.txt」というファイルを生成したい場合、
CGIに、

open IN, ">test.txt";
close IN;

と記述しましたが、test.txtが生成されません。
何か問題があるのでしょうか?

最終的には、すでにtest.txtと言うファイルが存在しない場合はなにもせず、
、存在しない場合はtest.txt(読み書き可能のファイル)を自動生成するような仕組みを作りたいのです。
使っているCGIはメールフォームCGIで、回答結果をtest.txtファイルに蓄積していくのですが、
上記のような機能を追加させyたいのです。

Aベストアンサー

・実行するディレクトリがCGIのあるディレクトリではない
・実行するユーザーに、そのディレクトリやtest.txtへの書き込み権が無い

あたりが有力でしょう。
詳細な方法は検索でもしてください。



細かい点を言えば
・出力ファイルにINってハンドルは混乱のもと
・追記するだけなら '>>' が楽なのでは。通常は無ければ作成してくれますし。

Qcgiで動的にファイルを生成しているその仕組みは?

cgiで生成されるファイルといえば.datのようなテキスト形式のデータが一般的ですが、探してみるとcgiで動的に画像やmidiデータをWeb上で生成しているものがありました。これはどのような仕組みでファイルを生成しているのでしょうか?

調べてみたところ、やはりcgi単体では動作せず、生成するデータの情報が書かれたモジュールと呼ばれるものが別で必要になるらしいです。ではこのモジュールはどのようにして作るのでしょうか?

皆様の知恵をお貸しください。
僕が見つけたmidiを生成するcgiはこちらです↓
http://www.donzoko.net/cgi/wmidi/index.html

Aベストアンサー

動的にバイナリファイルを作成する場合、対象が何であれ外部のユーティリティをCGIから呼び出しています。
作成する元となるデータはテキスト形式となり、そのファイルをパラメータとしてユーティリティに渡し結果を返すようにしています。

では、そのユーティリティは何で作成するかというと、UNIX/Linux系ならgcc、Windows系ならVC++がメインだと思います。

フリーの画像投稿掲示板でサムネイルを自動で生成する機能があるものだと、セットアップの手順書の中に必要となるユーティリティの記述があったりします。
フリーのレンタルサーバー(Infoseekなど)だと、使用できるユーティリティの説明があったりします。


おすすめ情報