Не отображается файл

222
10 апреля 2018, 03:07

Всем привет. Имеется код в котором введенное значение кладется в файл it's password.txt в директории C:\Windows\Sustem32\config. Программа работает отлично, файл создается, пароль сохраняется, но файл в директории я не вижу. Перепробвал уже все: в настройках проводника ставил "показывать системные файлы", снимал галку со "скрывать системные файлы". Ничего не помогает. Моя программа говорит мне о том, что файл есть и хэш в нем лежит. в видео это видно четко и ясно. https://youtu.be/vxlo6aSFB5k

Answer 1

Дело в том, что Windows не разрешает приложению с правами пользователя писать в системный каталог.

Раньше, во времена Windows 95, любое приложение имело право писать куда угодно, и часто могло обрушить систему, переписав важные настройки или подменив системную библиотеку. Если просто отобрать у приложений права на системный каталог, то старые программы, написанные без учёта безопасности системы, будут просто валиться. Для обеспечения обратной совместимости для таких программ системой проводится виртуализация системного каталога и реестра: если программа пишет в запрещённое место, система считает, что автор программы не читал документацию, и притворяется, что всё в порядке. При этом система на деле складывает файлы в %LOCAL­APP­DATA%\Virtual­Store, а ключи реестра — в HKCU\Software\Classes\Virtual­Store.

При этом приложению при чтении подставляются значения, как будто бы оно смогло записать туда, куда нельзя. Другие приложения при этом, понятно, ничего не увидят.

Если вы хотите писать куда-то данные, правильное место для них — каталог %APPDATA%\<имя вашего приложения>\. Не надейтесь на виртуализацию: рано или поздно Майкрософт перестанет поддерживать совместимость с багами Windows 95, и код начнёт просто падать.

Литература:

  • I saved some files into the Program Files directory, and now they’re gone! — The Old New Thing
  • Inside Windows Vista User Account Control — Mark Russinovich

  • How User Account Control works — Microsoft Docs.

READ ALSO
WinApi нажатие Ctrl + -

WinApi нажатие Ctrl + -

Доброго времени сутокПишу небольшого автокликера для мобильной игры

244
Как запустить инсталятор внутри формы?

Как запустить инсталятор внутри формы?

Язык C# Как запустить exe инсталятор программы внутри формы своей программы? Это на тот случай если инсталятор не поддерживает тихий режим...

236
PeriodicTask.Builder() для Service в Xamarin.Forms

PeriodicTask.Builder() для Service в Xamarin.Forms

Добрый день, ищу помощи при создании службы которая работает с переодичностью (обновляет данные из интернета) в XamarinForms, служба не запускается...

198
MongoDB принимает за _id свойство Id

MongoDB принимает за _id свойство Id

Как указать MongoDB, что Id это не _id в данном классе

185