-1

重複の可能性:
C#ファイルはファイル名パターンで存在します

たとえば、documentsというフォルダーがあり、pdf、ビデオ、テキスト、写真などで構成されるdocumentsフォルダーがあります。.doc拡張子のみを使用して何かを実行したいとします。私が考えることができる唯一のことは、実際にはcmd.exeを使用し、ディレクトリでdirコマンドを使用するプロセスを作成することですが、より効率的なものを探しています。何かお勧めはありますか?

4

2 に答える 2

2

おそらく、DirectoryInfo.GetFilesメソッドを参照しています。

foreach (FileInfo fi in new DirectoryInfo(@"C:\documents").GetFiles().Where(x => x.Extension.ToLower() == ".doc")) {
    Console.WriteLine(fi.Name);
}
于 2012-12-03T01:01:32.730 に答える
0

Directory.EnumerateFilesメソッド

var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.doc*", SearchOption.AllDirectories);

foreach (string currentFile in txtFiles)
{
    ...
}

より効率的なものが必要な場合:

http://visuallogparser.codeplex.com/にいる善良な人々が、ソースコードを提供してくれました。

VS2010でVisualLogParserソリューションを開き、デバッグに関するプロンプトを無視します。ソリューションが読み込まれた後、F5、コンボボックスをFS(FileSystem)に設定し、このクエリを貼り付けて、[移動]を押します。

SELECT
    ContentPath, [Days (Old)], FileName, [Creation Date Time]
    USING creationtime AS [Creation Date Time],
    TO_DATE([Creation Date Time]) AS Cdate,
    SUB(TO_LOCALTIME(SYSTEM_TIMESTAMP()), Cdate) AS Days,
    DIV(TO_INT(Days),86400) As [Days (Old)],
    EXTRACT_PATH(TO_LOWERCASE(path)) AS ContentPath,
    TO_LOWERCASE(name) AS FileName
FROM 'c:\*.doc' 
WHERE
  (attributes NOT LIKE 'D%')
AND
  ([Days (Old)] >= TO_INT('0'))
ORDER BY [Creation Date Time] DESC
于 2012-12-03T02:23:03.220 に答える