当使用LINQ而不是foreach时,拒绝访问文件
本文关键字:foreach 拒绝访问 文件 LINQ | 更新日期: 2023-09-27 18:08:41
我得到这个异常:
{"调用的目标引发了异常。"}
{"拒绝访问路径'C:''test''test''bin''log'。"}
当我运行此代码时:
if(Directory.Exists(logPath))
{
return Directory.GetFiles(logPath, "*.log")
.Select(file => File.ReadAllText(logPath))
.ToList();
}
当我运行以下代码时,我得到NO异常:
if(Directory.Exists(logPath))
{
var list = new List<string>();
var filesPath = Directory.GetFiles(logPath, "*.log");
foreach (var filePath in filesPath)
{
string text = File.ReadAllText(filePath);
list.Add(text);
}
return list;
}
为什么我不能使用Linq来获取文本文件的内容?
您的两个代码应该是相同的。这也不会抛出异常。
.Select(file => File.ReadAllText(file))
完整代码
if (Directory.Exists(logPath))
{
return Directory
.GetFiles(logPath, "*.log")
.Select(file => File.ReadAllText(file))
.ToList();
}
请注意:您的异常不是特定于LINQ的。