可能重复:
C# 文件按文件名模式存在
假设我有一个名为documents 的文件夹,该文件夹由pdf、视频、文本、照片等组成……我想做一些只有.doc 扩展名的事情。我唯一能想到的实际上是创建一个将使用 cmd.exe 并在目录中使用 dir 命令的进程,但是我正在寻找更有效的方法。有什么建议吗?
可能重复:
C# 文件按文件名模式存在
假设我有一个名为documents 的文件夹,该文件夹由pdf、视频、文本、照片等组成……我想做一些只有.doc 扩展名的事情。我唯一能想到的实际上是创建一个将使用 cmd.exe 并在目录中使用 dir 命令的进程,但是我正在寻找更有效的方法。有什么建议吗?
也许您指的是DirectoryInfo.GetFiles 方法:
foreach (FileInfo fi in new DirectoryInfo(@"C:\documents").GetFiles().Where(x => x.Extension.ToLower() == ".doc")) {
Console.WriteLine(fi.Name);
}
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