- PR -

大量にファイルを格納する場合のフォルダデザイン

投稿者投稿内容
janon
会議室デビュー日: 2003/04/02
投稿数: 13
お住まい・勤務地: 東京都
投稿日時: 2005-02-25 16:24
コメントをありがとうございます。
返信が遅くなりましてすいません。

・・・

>平均すると1個のフォルダに9個のファイル
はい、そうです。
中身は平均20KB前後のテキストファイルです。

10万個のフォルダに90万個のファイルを
分類する件ですがテスト実装をしてみました。

テストの経過でわかったのは
プログラムからアクセスする場合
(EXCELのVBAでFile System Objectを利用)
ファイルオープンの待ち時間は気になりません。
時間を正確に計測しているわけではないのですが
ユーザが使う分にはストレスにならないと思います。

また、エクスプローラでフォルダペーンを非表示にし
パスを指定しながら開くのも同じように
待ち時間はほとんどありません。

ただし、エクスプローラの場合は
アドバイスを頂いたとおり、
10万個のフォルダがぶら下がるフォルダを
選択瞬間、砂時計になります。
私の環境では5分程度応答なしになります。

・・・

これからどのような工夫が出来るか
検討してみたいと思います。
フォローアップをこちらに書き込もうと思います。
アドバイスをありがとうございました。
m.ku
大ベテラン
会議室デビュー日: 2002/09/15
投稿数: 184
投稿日時: 2005-02-25 22:34
既出ですが、ファイルであれフォルダであれエクスプローラ等で使用するなら
合計2〜3000程度が実用限度でしょう。階層を深くして各々のフォルダの表示個数が
その範囲に収まる様にした方が無難かと。(階層を深くしすぎると別の問題はありますが)
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-02-25 23:38
エクスプローラで見るなら直感的には1000個でも多いと感じます。

引用:
基本的にはGUIでなくプログラムからの
ファイルアクセスを想定しています。

GUIを考えなくていいなら極端な話フォルダを分けなくてもいいですね。

そもそもOS(又はプログラム側)にはファイルのパス長に制限があるので
深く掘るとそれにひっかかるかもしれないです。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemiopathtoolongexceptionclasstopic.asp

何で90万個もファイルを作らなきゃいけなくなったのか不思議ではありますが。

[ メッセージ編集済み 編集者: べる 編集日時 2005-02-25 23:48 ]
ようすけ
会議室デビュー日: 2002/07/26
投稿数: 17
投稿日時: 2005-02-26 00:12
フォルダー内のファイル名検索は、Windows系でのNTFSでは
まだ全件検索だと思いますので、プログラムの作り方では、
極端に遅くなります。

1フォルダー内のファイルと下位フォルダー数が1000件
以下になるように階層構造化するか、全てのファイルを
1ファイルにパックして、ファイル検索が早くなるように、
バイナリー検索が行えるようにした方が良いと思われます。
(後者は、PCゲームで良く使われるテクニックです。)




[ メッセージ編集済み 編集者: 影人 編集日時 2005-02-26 00:13 ]
janon
会議室デビュー日: 2003/04/02
投稿数: 13
お住まい・勤務地: 東京都
投稿日時: 2005-03-02 18:44
皆様、コメントをありがとうございます。
90万個のファイルを整理する件ですが
実装のテストを進めております。

階層をわけたテストもしていますが
フォルダ内のファイル数が数千の単位になりますと
エクスプローラでクリックした場合に
待ち時間が数秒かかりストレスになります。

以前にも書き込んだとおりですが、
プログラムからファイルシステムオブジェクトで
アクセスする分には大きな待ち時間は無いように思えます。

ここで一つ気になったのは、ディスクのプロパティに
ファイル検索用のインデックスをつけるオプションがあります。
一つのフォルダに大量のファイルを保存する場合
このオプションはどのように影響するでしょうか?

皆様のコメントがいただければと思いまして
こちらに書き込んでみます。

スキルアップ/キャリアアップ(JOB@IT)