Я столкнулся с неожиданной проблемой с получением только полных имен файлов верхнего каталога из определенного каталога. C# выдает ошибку и ничего не перечисляет в определенном каталоге. Но у MS DOS нет проблем с моей командой: *"dir C:\windows\prefetch\*.pf"
Visual Basics 6 старая "Dir Function" также делает это без нареканий. «Проводник Windows» открывает его и ничего у меня не спрашивает. Кроме того, "Nirsofts Tool Suit" мгновенно и без проблем выводит список. Ни один из этих инструментов не нужно запускать со специальными разрешениями, просто дважды щелкните значок приложения, и все готово.
Я осмотрелся и не нашел здесь ничего, что могло бы ответить на эту странную проблему. Мой пользователь может получить доступ к каталогу, если я войду в него с любым другим приложением, теперь возникает вопрос, почему С# выдает «Исключение неавторизованного доступа», что совершенно странно, поскольку у меня есть доступ к этой папке.
Я не хочу ни повышать уровень своего приложения с правами администратора, ни создавать для него дополнительный xml, чтобы запускать его с наивысшими привилегиями. Следует избегать недоверчивого желтого прямоугольника высоты.
Теперь мой вопрос: почему я не могу перечислить имена файлов в этой папке, когда все другие приложения могут это делать. Какой код мне нужен в случае сбоя "Directory.GetFiles()"? Есть ли какой-либо флаг или свойство в классе каталога фреймворка, который разрешает моему приложению доступ к файлам, что угодно.
Вот мой код, который терпит неудачу (используя System.IO):
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.Substring(0, 0); //clear the textBox1
//Unauthorized access exception and yellow bar in this line
foreach(string FileX in Directory.GetFiles(Path.Combine(Environment.GetEnvironmentVariable("windir"), "prefetch"), "*.pf"))
{
textBox1.Text += FileX;
}
}
*.pf
файлов, вы можете попробовать перечислить все -*
, какой результат вы получите? - person Dimitar Dimitrov   schedule 06.08.2013