2017-02-27 5 views
-2

ファイルを見つけて、ファイルのアドレスも返す必要があります。私はすでに試しましたが、うまくいきません。すべてのディレクトリ内のファイルを検索する

どうすればいいですか?

私はこのコードを使用していた。

var files = new List<string>(); 
//@Stan R. suggested an improvement to handle floppy drives... 
//foreach (DriveInfo d in DriveInfo.GetDrives()) 
foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true)) 
{ 
    files.AddRange(Directory.GetFiles(d.RootDirectory.FullName, actualFile, SearchOption.AllDirectories)); 
} 
+1

'' Directory.GetFiles' [ファイルのパス(パスを含む)の名前を返すため] *( "https:/" /msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx) – Filburt

+0

私は上記のコードを使用しました。それはもはや私に名前を返すということです。私はアドレス(例:c:/ Program Files)を取得する必要がありますが、私をすでに残しておらず、これを配置しようとしました: すべての前のコード------ .GetPath または類似していますが、私、構文エラーが表示されます。 – Stiven

+0

名前とパス以外のプロパティが必要な場合は、[DirectoryInfo.GetFileSystemInfos](https://msdn.microsoft.com/en-us/library/dd383457(v = vs.110).aspx)を使用してください。 [FileSystemInfo](文字列の代わりにhttps://msdn.microsoft.com/en-us/library/system.io.filesysteminfo(v = vs.110).aspx)オブジェクト。 – Filburt

答えて

0

を私は簡単なテストとDirectory.GetFilesを作成したファイルへのパス全体を(あなたがアドレスを呼び出しているもの)を返しません。

指定したディレクトリ内のファイル、またはどのファイルが見つからない場合は、空の配列のための完全な名前(パスを含む)の配列を:Microsoftのドキュメント(https://msdn.microsoft.com/en-us/library/07wt70x2(v=vs.110).aspxは)それを返すと言います。

あなたはまだ完全なのFileInfoが必要な場合は、あなたがこのような何かを行うことができ...(もっとエレガントな方法がありますが、これはあなたが欲しい欲しいでしょう。)

var files = new List<string>(); 
foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true)) 
{ 
    var matchingFiles = Directory.GetFiles(d.RootDirectory.FullName, actualFile, SearchOption.AllDirectories)); 
    foreach (var matchedFile in matchingFiles) 
    { 
     var fileInfo = new FileInfo(matchedFile); 

     // The newly created fileInfo will have everything you need, including path inside the FullName 
     files.Add(fileInfo.FullName); 
    } 
} 

私はこのことができます願っています。

+0

パーフェクト、ちょうど私が必要なもの。私はFileInfoについて知っていましたが、ファイルパスを返す方法を知らなかったので、 "FullName"は何か他のものだと思っていました。どうもありがとうございます。 – Stiven

+0

さて、コードに問題があるようです。 しかし、ファイルパスは返されませんが、ビジュアルスタジオプロジェクトは「はい」です。ファイル(現時点では "Bien.txt")は "ローカルディスクC /プログラムファイル" にあり、C:\ Users \ Stiven \ Documents \ Visual Studio 2010 \ Projects \ SIAMフェーズ4プロジェクト\ bin \ Debug \ Bien.txt "FullName" – Stiven

+0

私はこのコードを使用していました: – Stiven

関連する問題