C#でちょっとしたアプリを作っているので、その過程で得た
テンプレ的なコードを備忘録として書いときます。
あるディレクトリを指定して、その配下のファイル一覧を得たり、
ディレクトリがあったらさらに辿るような処理をしたい場合に使うコード。
using System.IO; private void listing( string startdir ) { foreach ( string file in Directory.GetFiles( startdir ) ) { // TODO:ファイルが見つかったときの処理 } foreach ( string dir in Directory.GetDirectories( startdir ) ) { // TODO:フォルダが見つかったときの処理 listing( dir ); } }
上記変数fileには、ファイル名単体ではなく、そこまでのパスも含めた
絶対パスが入るのでご注意ください。
なお、不正なパスを指定した場合、
System.IO.DirectoryNotFoundExceptionがスローされるので、
listingメソッドのコール元では必ずこれをキャッチするようにしましょう。
private void analyzeButton_Click( object sender, EventArgs e ) { if ( targetPath == "" ) { return; } // System.IO.DirectoryNotFoundException例外を // キャッチする try { listing( targetPath ); } catch ( System.IO.DirectoryNotFoundException ex ) { Console.WriteLine( ex.Message ); } }