如何检查文件夹中的文件名

use*_*502 1 c# asp.net

我希望能够使用c#迭代文件夹中某些图像文件的名称.因此,对于intance我有一个名为image的文件夹,包含以下图像

image dog.jpg cat.jpg horse.jpg

我希望能够通过名称并能够说出来

if(filename == dog.jpg)
  return true
else
return false
Run Code Online (Sandbox Code Playgroud)

这种性质的东西

谢谢

Mik*_*erg 7

你应该使用静态Exists方法System.IO.File.

return System.IO.File.Exists("dog.jpg")
Run Code Online (Sandbox Code Playgroud)

由于该方法返回一个布尔值,因此不需要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");
Run Code Online (Sandbox Code Playgroud)

甚至更短:

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

这将搜索指定的文件夹和所有子文件夹的模式"dog.jpg".该Any()扩展方法只是检查是否IEnumerable包含任何项目.我认为这是最有效的方式(基于直觉).