var GetFileByFileName = Directory.GetFiles(SourceFilePath)
.Select(x => new FileInfo(x))
.Where(x => x.Name==SourceFileName)
.Take(1)
.ToArray();
这是我的指定文件名获取文件的代码。我在使用数组。在这里SOURCEFILENAME是一个字符串变量,它具有文件名。但它不工作。我可以从目录获取所有文件。但我只需要一个基于SOURCEFILENAME的目录中的文件。请帮帮我..谢谢。 。
答案 0 :(得分:2)
如果你想使用你目前使用的方式,你可以用下面提到的方式实现
var GetFileByFileName = Directory.GetFiles(@"D:\Re\reactdemo")
.Select(x => new FileInfo(x))
.Where(x => x.Name == "package.json")
.Take(1)
.ToArray();
检查你的SourcePath应该看起来像我在代码中硬编码的那样,你的源文件应该是扩展名
答案 1 :(得分:0)
您的代码很好,应该可以使用。
或者,您可以在没有Linq
的情况下执行此操作。 Directory.GetFiles
有一个重载,它接受文件搜索模式,您可以在其中传递文件名。
var fileInfo = Directory.GetFiles(SourceFilePath, SourceFileName);
其中,例如
var SourceFilePath = @"C:\MyBackUp\Files";
var SourceFileName = @"MyTextFile.txt";
请参阅this以供参考。
答案 2 :(得分:0)
当你同时拥有文件名和路径时,为什么需要使用linq搜索所有文件?您的linq查询正在比较== SourceFileName,这是您使用标准File操作直接搜索文件所得到的。
var file = Path.Combine(SourceFilePath, SourceFileName);
//check if exists
if (File.Exists(file))
{
// open your file to read it as needed
// e.g. reading as text:
var content = File.ReadAllText(file);
}