如何检查文件夹中是否存在文件?


112

我需要检查文件夹中是否存在xml文件。

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory);
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
    log.Info("no files present")
}

这是检查文件夹中文件是否存在的最佳方法。

我只需要检查一个xml文件是否存在


2
您要查找所有xml文件还是查找特定名称的XML文件?
Piotr Auguscik 2011年


5
您所需要的就是公正Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any(),这是您可以获得的最快的。
暗影巫师为您耳边

Answers:


198

这是一种查看该文件夹中是否存在任何XML文件的方式。

要检查特定文件,请使用File.Exists(path),它将返回一个布尔值,指示文件path所在的位置。


4
您还可以使用FileInfo.Exists属性
VMAtm 2011年

10
注意,如果用户无权读取文件,此答案将返回false。因此,它不仅可以检查文件是否存在于文件夹中,还可以执行更多操作。您可能要使用DirectoryInfo.GetFiles()并枚举结果。
ogborstad 2015年

35

使用FileInfo.Exists属性:

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory);
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
    log.Info("no files present")
}
foreach (var fi in TXTFiles)
    log.Info(fi.Exists);

File.Exists方法:

string curFile = @"c:\temp\test.txt";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");

5
DirectoryInfo和FileInfo类很棒。它们提供了许多处理这些文件系统构造的方法,在绑定到UI时有用的属性中公开了信息,并且可序列化,因此您可以在配置中使用它们。

29

要检查文件是否存在,可以使用

System.IO.File.Exists(path)

8

这样,我们可以检查特定文件夹中的现有文件:

 string curFile = @"c:\temp\test.txt";  //Your path
 Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");

8

由于没有人说过如何检查文件是否存在并获取当前文件夹,因此可执行文件位于(工作目录)中

if (File.Exists(Directory.GetCurrentDirectory() + @"\YourFile.txt")) {
                //do stuff
}

@"\YourFile.txt"是不区分大小写的,这意味着这样的东西@"\YoUrFiLe.txt"@"\YourFile.TXT"@"\yOuRfILE.tXt"被解释是相同的。


3

可以这样改进:

if(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count == 0)
    log.Info("no files present")

或者:

log.Info(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count + " file(s) present");

1
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}

2
尽管此代码可能(也可能不会)解决了问题,但是要想获得良好的答案,始终需要对此代码的功能进行解释。另请注意,您的答案似乎并未添加任何新内容。您还应该适当地设置代码示例的格式,并说明localUploadDirectory答案是什至还是为什么引用它。
BDL

0

这对我有帮助:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false);

4
(System.IO.File.Exists(filePath) ? true : false);多余System.IO.File.Exists(filePath);就足够了。
Naveen Niraula '18

2
实际上就像Adrita的代码一样,它使变量应该包含什么变得很明显,这也是如何将逻辑应用于学生程序的绝佳示例。将其纳入一堂课。有时,必须精简的代码在维护和调试上也具有最大的开销
ScaryMinds '18

0

这让我惊呆了。

file_browse_path=C:\Users\Gunjan\Desktop\New folder\100x25Barcode.prn
  String path = @"" + file_browse_path.Text;

  if (!File.Exists(path))
             {
      MessageBox.Show("File not exits. Please enter valid path for the file.");
                return;
             }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.