2012-12-03 75 views
-1

可能重复:
C# file exists by file name patternC#,使用具有相同扩展名的文件夹中

让我们说我有一个文件夹名为文件,文件夹包含PDF的文档,视频,文字,照片等...我想只用.doc扩展名做一些事情。我唯一能想到的就是创建一个使用cmd.exe并在目录中使用dir命令的进程,但是我正在寻找更有效的方法。任何建议?

+0

你是谷歌吗? – horgh

+0

检出:http://stackoverflow.com/questions/1199260/c-sharp-file-exists-by-file-name-pattern –

+0

我没有谷歌,但无法找到它与我的关键字。对不起... –

回答

2

也许你指的是DirectoryInfo.GetFiles method

foreach (FileInfo fi in new DirectoryInfo(@"C:\documents").GetFiles().Where(x => x.Extension.ToLower() == ".doc")) { 
    Console.WriteLine(fi.Name); 
} 
+0

这也会导致.docx文件被显示 –

+0

没有办法在searchPattern过滤器中过滤出'docx'。你必须手动做到这一点。我会更新我的例子。 –

0

Directory.EnumerateFiles Method

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

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

如果你想要的东西更高效:在http://visuallogparser.codeplex.com/

好乡亲都 提供我们的源代码。

打开VisualLogParser解决VS2010中,忽略有关调试的提示,该解决方案加载后,F5,设置组合框以FS(文件系统),粘贴在此查询,按去。

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 
相关问题