System.IO.Directory.GetFiles(String, String, SearchOption)メソッドの無限ループ
- 題名: System.IO.Directory.GetFiles(String, String, SearchOption)メソッドの無限ループ
- 著者: DH
- 日時: 2010/09/07 10:12:07
- ID: 27288
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: System.IO.Directory.GetFiles(String, String, SearchOption)メソッドの無限ループ
- 著者: shu
- 日時: 2010/09/07 11:28:54
- ID: 27289
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: System.IO.Directory.GetFiles(String, String, SearchOption)メソッドの無限ループ
- 著者: DH
- 日時: 2010/09/07 12:37:12
- ID: 27290
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
皆さん、こんにちは!初めて投稿させていただきます。
いつもこちらには、大変お世話になっています。皆さんの知識と管理人さんのおかげで、初心者から半人前(?)になれました。
まだまだ皆さんのような一人前の技術者にはほど遠いですが・・・
【解決したい問題】
今回皆さんのお力をお借りしたいことなのですが、
System.IO.Directory.GetFiles(String, String, SearchOption)メソッド
で、第三引数に「SearchOption.AllDirectories」を指定した際の動きについてです。
MSDNでは
「検索範囲として AllDirectories を選択し、ループを作成するリンクがディレクトリ構造に含まれている場合は、検索操作が無限ループになります。」
と有りますが、いったいどのような状態だと無限ループになるのか、現象の再現方法がわかりません。
エクスプローラ上でフォルダやファイルを操作している限りありえない現象ならば問題ないのですが、いかんせん不安なままコードを使用するのは怖いので・・・
【解決するために何をしたか】
「ループを作成するリンクがディレクトリ構造に含まれている」場合を再現しようとして以下のような「ショートカット」を作成いたしました。
./フォルダA/フォルダB/フォルダC/フォルダAへのショートカット
(各フォルダに検索条件に引っかかるファイルを1ファイルずつ格納)
上記の構成ですと、各フォルダ内のファイル+「フォルダAへのショートカット」の.lnkファイルが取得でき、無限ループとはなりませんでした。
「無限ループ」はさすがに恐ろしいです・・・ぜひともご教授願います。