“遇到错误”;访问路径';C:\Users\Work&;学校\文档\我的音乐';被拒绝。”;C#-应用程序控制台
我正在从microsoft“”的教程中学习 具体来说,这一点:“遇到错误”;访问路径';C:\Users\Work&;学校\文档\我的音乐';被拒绝。”;C#-应用程序控制台,c#,file,directory,enumeration,C#,File,Directory,Enumeration,我正在从microsoft“”的教程中学习 具体来说,这一点: using System; using System.IO; using System.Linq; class Program { static void Main(string[] args) { try { // Set a variable to the My Documents path. string docPath =
using System;
using System.IO;
using System.Linq;
class Program
{
static void Main(string[] args)
{
try
{
// Set a variable to the My Documents path.
string docPath =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
from line in File.ReadLines(file)
where line.Contains("Microsoft")
select new
{
File = file,
Line = line
};
foreach (var f in files)
{
Console.WriteLine($"{f.File}\t{f.Line}");
}
Console.WriteLine($"{files.Count().ToString()} files found.");
}
catch (UnauthorizedAccessException uAEx)
{
Console.WriteLine(uAEx.Message);
}
catch (PathTooLongException pathEx)
{
Console.WriteLine(pathEx.Message);
}
}
}
但是,当我运行此文件时,遇到以下错误:
对路径“C:\Users\Work&School\Documents\My Music”的访问被拒绝
我想知道,为什么它首先要访问我的音乐文件夹,而它所要做的只是访问文档?此外,我还尝试从一个单独的文件夹中删除音乐文件夹,但最终还是出现了相同的错误。我还将两个文本文件放在文档文件夹中,都指定了“Microsoft”,这样它们将从行中返回值。我怎样才能消除这个错误呢
*对于文本文件,我还关闭了只读属性为什么它首先要访问我的音乐文件夹 因为您的
搜索选项
seacoption.AllDirectories
搜索当前目录及其所有子目录中的文件
如果只想在当前目录而不是其子目录中搜索,请将SearchOption
更改为seacoption.TopDirectoryOnly
更新后的代码应该如下所示:
var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.TopDirectoryOnly)
from line in File.ReadLines(file)
where line.Contains("Microsoft")
select new
{
File = file,
Line = line
};