Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查文件夹中的文件名_C#_Asp.net - Fatal编程技术网

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

C# 如何检查文件夹中的文件名,c#,asp.net,C#,Asp.net,我希望能够使用c遍历文件夹中一些图像文件的名称。因此,对于intance,我有一个名为image的文件夹,其中包含以下图像 形象 dog.jpg cat.jpg horse.jpg 我希望能够通读这些名字,并且能够说 if(filename == dog.jpg) return true else return false 那种性质的东西 谢谢您应该在System.IO.File上使用static Exists方法 由于该方法返回布尔值,因此在您给出的示例中不需要if语句 您还可以使用一点

我希望能够使用c遍历文件夹中一些图像文件的名称。因此,对于intance,我有一个名为image的文件夹,其中包含以下图像

形象 dog.jpg cat.jpg horse.jpg

我希望能够通读这些名字,并且能够说

if(filename == dog.jpg)
  return true
else
return false
那种性质的东西

谢谢

您应该在System.IO.File上使用static Exists方法

由于该方法返回布尔值,因此在您给出的示例中不需要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是否包含任何项。我认为这是基于直觉的最有效的方法。

您应该在System.IO.File上使用static Exists方法

由于该方法返回布尔值,因此在您给出的示例中不需要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是否包含任何项。我认为这是基于直觉的最有效的方法。

从只需在//do something with filename区域插入您的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);
  }
}

从只需在//文件名区域中插入您的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\");
然后遍历它

获取所有文件

string[] filePaths = Directory.GetFiles(@"c:\yourfolder\");
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;
并反复使用它

使用

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;
使用


A给每个人投票是因为每个人都是对的:A给每个人投票是因为每个人都是对的: