2011-06-30 38 views
1

我希望能夠使用c#遍歷文件夾中某些圖像文件的名稱。因此,對於intance我有一個名爲圖像文件夾,其中包含以下圖片如何檢查文件夾中的文件名

圖像0​​dog.jpg cat.jpg horse.jpg

我希望能夠去通過名稱和能夠說

if(filename == dog.jpg) 
    return true 
else 
return false 

東西自然

謝謝

+0

一個送給大家一票,因爲每個人都是正確的:) – user710502

回答

7

你SH請使用System.IO.File上的靜態Exists方法。

return System.IO.File.Exists("dog.jpg") 

由於該方法返回一個布爾值,也沒有必要在你給的例子中if聲明。

您也可以使用一點的LINQ的神奇,以確定是否一個文件中的一個文件夾結構存在,這樣的:

var dir = new System.IO.DirectoryInfo(startFolder); 
var fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories); 
bool fileExists = fileList.Any(f => f.FullName == "dog.jpg"); 

甚至更​​短:

return System.IO.Directory 
    .GetFiles(@"c:\myfolder", "dog.jpg", SearchOption.AllDirectories) 
    .Any(); 

這將搜索的文件夾指定和所有子文件夾與模式「dog.jpg」。擴展方法Any()只檢查IEnumerable是否包含任何項目。我認爲這是做這件事最有效的方式(基於直覺)。

1

http://weblogs.asp.net/israelio/archive/2004/06/23/162913.aspx只要插入你如果在 「//做文件名事」 區域:

// How much deep to scan. (of course you can also pass it to the method) 
const int HowDeepToScan=4; 

public static void ProcessDir(string sourceDir, int recursionLvl) 
{ 
    if (recursionLvl<=HowDeepToScan) 
    { 
    // Process the list of files found in the directory. 
    string [] fileEntries = Directory.GetFiles(sourceDir); 
    foreach(string fileName in fileEntries) 
    { 
     // do something with fileName 
     Console.WriteLine(fileName); 
    } 

    // Recurse into subdirectories of this directory. 
    string [] subdirEntries = Directory.GetDirectories(sourceDir); 
    foreach(string subdir in subdirEntries) 
     // Do not iterate through reparse points 
     if ((File.GetAttributes(subdir) & 
      FileAttributes.ReparsePoint) != 
       FileAttributes.ReparsePoint) 

      ProcessDir(subdir,recursionLvl+1); 
    } 

}

1

得到的所有文件

string[] filePaths = Directory.GetFiles(@"c:\yourfolder\"); 

,並通過它

迭代
1
DirectoryInfo di = new DirectoryInfo("c:\\Images"); 
var files = di.GetFiles("*.jpg"); 
foreach (var fileInfo in files) 
{ 
    if (fileInfo.Name == "dog.jpg") 
       return true; 
} 
return false; 
1
 var files = System.IO.Directory.GetFiles("directory", "*.jpg"); 
     foreach (var item in files) 
     { 
      if (System.IO.Path.GetFileName(item) == "dog.jpg") 
      { 
       // File found.     
      } 
     } 
相關問題