如何检查文件夹中的文件名
本文关键字:文件夹 文件名 检查 何检查 | 更新日期: 2023-09-27 18:00:41
我希望能够使用c#迭代文件夹中一些图像文件的名称。因此,我有一个名为image的文件夹,其中包含以下图像
图像dog.jpgcat.jpghorse.jpg
我希望能够浏览这些名字,并能够说出
if(filename == dog.jpg)
return true
else
return false
某种性质的
感谢
您应该在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
是否包含任何项目。我认为这是最有效的方法(基于直觉)。
来源http://weblogs.asp.net/israelio/archive/2004/06/23/162913.aspx只需在"//用文件名做某事"区域插入你的if:
// 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);
}
}
获取所有文件
string[] filePaths = Directory.GetFiles(@"c:'yourfolder'");
并对其进行迭代
使用目录。GetFiles()
foreach(var file in (myDir.GetFiles("*.jpg")
{
if(file.Name == "dog.jpg") return true;
}
var files = System.IO.Directory.GetFiles("directory", "*.jpg");
foreach (var item in files)
{
if (System.IO.Path.GetFileName(item) == "dog.jpg")
{
// File found.
}
}
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;