1

У меня есть .EXE-файл, установленный в c:\windows\system32 (Win7), который не виден для других программ, кроме приложений Windows (Explorer, cmd и т.д.)

Я могу запустить его с любого терминала CMD. Однако другие программы не могут открыть этот файл. Они даже не могут перечислить это в своих OpenFileDialogs. Я также попытался запустить эту программу из Python os.system() и получил "Файл не найден".

Обычно я вижу и запускаю другие программы, расположенные в том же каталоге (например, PING.exe).

Я действительно уверен, что файл там. Эта проблема возникла на 3 разных компьютерах, все под управлением Windows 7.

В данном случае это файл TFTP.exe, созданный Microsoft.

Следующие изображения показывают это условие:1 - Проводник Windows, показывающий, что файл существует в каталоге c:\windows\system32 2 - Диалог открытия файла, из зависит от.exe, не может увидеть файл в том же каталоге

Проводник Windows, показывающий, что файл существует в c:\windows\system32

Диалог открытия файла, от зависит от.exe, не может видеть файл в том же каталоге

2 ответа2

2

Возможно, его там нет, Windows просто имитирует , что он есть (и только Windows знает об этом, поэтому другие программы его не находят).

Найдите его в C:\Users\YourUserName\AppData\Local\VirtualStore\...

Это может решить вашу проблему; если вы хотите понять, почему это происходит, Google File and Registry Virtualization.

В двух словах, из соображений контроля доступа, Windows не позволяет писать в эту область только каждой программе, поэтому, если более старая программа должна писать туда, она перенаправляет файл в ваше виртуальное хранилище, но непрерывно моделирует то, где вы думали это.

1

Я недавно столкнулся с этой же самой проблемой и нашел причину почему.

Я запустил свой исполняемый файл, скомпилированный для x86 в 64-битной операционной системе, и, действительно, этот файл нигде не был найден в моем исполняемом файле, ни путем открытия диалогового окна файла, ни путем поиска файла в каталоге с каталогом.GetFiles(), а не с File.Существует(). Однако при компиляции моего исполняемого файла для x64 файл был найден снова всеми предыдущими методами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .