Использование VS 15, С# с .Net 4.5.2
Компьютер находится в сети AD с именем объявления "AD".
Эта проблема возникает с правами обычного пользователя AD, правами администратора AD и правами локального администратора. Неважно, какие права получает программа, возникает та же проблема.
Наш тестовый файл " C:/windows/system32/conhost.exe".
Файл выше существует, он очень существует. Я вижу это с исследователем.
Вы можете видеть, что он есть, верно?
Следующая команда cmd проверяет, существует ли файл:
IF EXIST "C:\windows\system32\conhost.exe" (echo does exist) ELSE (echo doesnt exist)
Он возвращает " существует", как и было обещано.
Следующий код С# проверяет, существует ли файл:
FileInfo file = new FileInfo("C:/windows/system32/conhost.exe");
MessageBox.Show(file.Exists + "");
Это возвращает " False".
Этот код также возвращает " False":
MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + "");
Этот код также не находит его:
foreach (string file in Directory.GetFiles("C:/windows/system32/"))
{
//conhost is NEVER mentioned, like it doesn't exist
}
Этот код также не находит его:
foreach (string file in Directory.EnumerateFiles("C:/windows/system32/"))
{
//conhost is NEVER mentioned, like it doesn't exist
}
False, False, False:
MessageBox.Show(File.Exists("C:/windows/system32/conhost.exe") + "");
MessageBox.Show(File.Exists("C:\\windows\\system32\\conhost.exe") + "");
MessageBox.Show(File.Exists(@"C:\windows\system32\conhost.exe") + "");
Что я делаю неправильно?
Дополнительное примечание: я скопировал conhost в C:\conhost.exe, и моя программа может найти это без проблем. Моя программа также находит другие файлы в system32, просто не conhost и несколько других. Например, он находит "connect.dll", который находится в system32, так что это не разрешение на чтение каталога.
Дополнительные примечания: conhost.exe и connect.dll имеют одинаковые атрибуты безопасности (вкладка "Безопасность" в свойствах файла).