-1

可能重复:
C# 文件按文件名模式存在

假设我有一个名为documents 的文件夹,该文件夹由pdf、视频、文本、照片等组成……我想做一些只有.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,将combo-box设置为FS(FileSystem),粘贴此查询并按go。

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 回答