я учусь на уроке от Microsoft "https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-enumerate-directories-and-files"
В частности, этот:
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 Musi c' запрещен.
Мне интересно, почему он получает доступ к папке My Musi c в первую очередь, когда все, что он должен делать, - это документы? Кроме того, я также попытался удалить папку Musi c из отдельной папки, но все равно получаю ту же ошибку. Я также поместил два текстовых файла в папку с документами, в обоих было указано «Microsoft», чтобы они возвращали значения из строк. Как бы избавиться от ошибки?
* для текстовых файлов я также отключил атрибут readonly