Windows имеет символические ссылки posix: ln -s c:\windows\system32\mshtml.dll c:\projects\project.xyz\innocent.txt
.Когда ваша программа открывает c:\projects\project.xyz\innocent.txt
, вы получаете c:\windows\system32\mshtml.dll
.System.IO.Path.GetFullPath()
здесь работает?
POSIX также поддерживает жесткие ссылки.Файл может иметь ноль (при удалении), один, два, десять, сто имен файлов.И все это «Имя файла», не более правильное или менее правильное, чем любое другое.
Windows поддерживает монтирование папок в папки.Опять же, все имена верны.
Вы можете решить это с разрешениями файловой системы: создайте нового пользователя для своего приложения.Дайте этому пользователю права доступа к пути вашего проекта.Не предоставляйте этому пользователю (или «Все», или любые группы, в которых он участвует) права на что-либо еще в любой файловой системе.Позвольте команде ядра Microsoft решить вашу проблему за вас.