Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 如何知道数组FileInfo[]是否包含文件_C#_Linq_Ienumerable_Fileinfo - Fatal编程技术网

C# 如何知道数组FileInfo[]是否包含文件

C# 如何知道数组FileInfo[]是否包含文件,c#,linq,ienumerable,fileinfo,C#,Linq,Ienumerable,Fileinfo,我有下面的代码,我在“if语句”中收到一个错误,说FileInfo不包含定义“Contains” 如果文件位于目录中,哪一个是查找该文件的最佳解决方案 谢谢 string filePath = @"C:\Users\"; DirectoryInfo folderRoot = new DirectoryInfo(filePath); FileInfo[] fileList = folderRoot.GetFiles(); IEnumerable<FileInfo> result =

我有下面的代码,我在“if语句”中收到一个错误,说FileInfo不包含定义“Contains”

如果文件位于目录中,哪一个是查找该文件的最佳解决方案

谢谢

string filePath = @"C:\Users\";
DirectoryInfo folderRoot = new DirectoryInfo(filePath);
FileInfo[] fileList = folderRoot.GetFiles();

IEnumerable<FileInfo> result = from file in fileList where file.Name == "test.txt" select file;
if (fileList.Contains(result))
{
      //dosomething
}
stringfilepath=@“C:\Users\”;
DirectoryInfo folderRoot=新的DirectoryInfo(文件路径);
FileInfo[]fileList=folderRoot.GetFiles();
IEnumerable result=来自文件列表中的文件,其中file.Name==“test.txt”选择文件;
if(fileList.Contains(result))
{
//剂量
}

删除
文件列表。包含(结果)
并使用:

if (result.Any())
{

}
.Any()
是一个LINQ关键字,用于确定结果中是否包含任何项。有点像做一个
.Count()>0
,除了。使用
.Any()
,一旦找到元素,就不再枚举序列,结果是
为True

事实上,您可以将最后五行代码从…中的
文件中删除到底部,替换为:

if (fileList.Any(x => x.Name == "test.txt"))
{

}

你可以检查结果的计数

 if (result.Count() > 0)
 {
    //dosomething
 }

这个怎么样,下面的代码会给你一个文件列表(全名为字符串);之所以以列表形式返回,是因为您的子目录可能具有与“test.txt”相同的文件名

var list = Directory.EnumerateFiles(@"c:\temp\", "test.txt",
           SearchOption.AllDirectories);
如果您非常确定“test.txt”文件将仅位于其中一个目录中,则可以使用:

string fullname = Directory.EnumerateFiles(@"c:\temp\", "test.txt",
                  SearchOption.AllDirectories).FirstOrDefault();
if (fullname != null) { ..... }

您已经将文件移动到result中了,您现在不是只想检查result的内容吗?您正在查询filelist以获取result,那么filelist怎么可能不包含result?您是否正在查看目录中是否有任何文件或目录中是否有特定文件?@KDiTraglia是的,我想检查文件“test.txt”是否存在在directory@FelicePollano目录中可能不存在test.txt。在If语句中,我需要对其进行评估。