Я получил это всплывающее окно от брандмауэра Windows. Что такое "C:2\" в пути? Настоящий путьD:\Steam\SteamApps\common\...
Я попробовал cd /d C:2\
в cmd и получил"The system cannot find the path specified."
Я также попробовал cd C:2\
в Powershell и получил"Set-Location : Cannot find path 'C:\2\' because it does not exist."
Так каким же образом «C:2\" может быть сокращением для «D:\"?
Обновлять:
Я попробовал поискать C:2
в реестре, как предложил @Tyson. При поиске C:2
в реестре с отключенным параметром «Сопоставлять только всю строку» выдается много нерелевантных результатов, а с включенным параметром «Сопоставлять только всю строку» — ни одного. Тем не менее, я нашел ключ, он находится в , HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules
и его значение равно v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=17|Profile=Private|App=C:2\steam\steamapps\common\sonic & all-stars racing transformed\asn_app_pcdx9_final.exe|Name=asn_app_pcdx9_final.exe|Desc=asn_app_pcdx9_final.exe|Defer=User|
. Есть правило для D:\Steam\SteamApps\common\Sonic & All-Stars Racing Transformed\ASN_App_PcDx9_Final.exe
в Windows Firewall with Advanced Security > Inbound Rules
. Я также нашел правило для Team Fortress 2, которое находится v2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Private|App=C:0\steam\steamapps\common\team fortress 2\hl2.exe|Name=hl2.exe|Desc=hl2.exe|Defer=User|
в реестре и D:\Steam\SteamApps\common\Team Fortress 2\hl2.exe
в списке правил брандмауэра Windows. Другие игры, установленные в , D:\Steam\...
имеют D:\
и в реестре, и в правилах брандмауэра Windows. Так что, вероятно, Steam создает псевдонимы для дисков, отличных от C:\, но я хотел бы знать, как это работает, и почему в одном случае это было C:2\
, в другом C:0\
, а в третьем просто D:\
. Я думаю, это, вероятно, потому, что это внешний жесткий диск, и иногда Steam не мог найти его в момент пробуждения Windows после сна, поэтому Steam назначал ему разные псевдонимы.
Но что на самом деле заставляет эти псевдонимы работать? Нет папок с названием 2
или 0
, это простоD:\Steam\...
решение1
#1 РЕКЛАМА
Может ли это быть файл с именем C, который на самом деле является связующим звеном (символической ссылкой), доступным из PATH приложения, и для которого существует альтернативный поток NTFS?ADS (альтернативный поток данных)так что C:1, C:2, C:3 и т. д. будут преобразованы в другое место? Поскольку Steam был ограничен установкой на один диск большую часть своего существования, возможно, это был хакерский обходной путь для поддержки перемещения игр?
Главная проблема: Я не знаю, работал ли ADS с папками, ярлыками, ссылками или соединениями. Однако, если бы он это делал, это было бы довольно близко к этому синтаксису.
#2 Относительный путь
По ссылке, опубликованной KingZoingo, мы видим, что C: может быть текущим относительным путем:
"C:tempdir\tmp.txt" refers to a file in a subdirectory to the current directory on drive C.
Поскольку допустимо называть папку или соединение «2», это также приведет к такому синтаксису.
Главная проблема: Я ожидал, что брандмауэр покажет фактический абсолютный путь.
решение2
Трудно сказать, не видя, что на самом деле находится в памяти запущенного процесса.
Вообще говоря, программа может делать много дерьма со своей собственной памятью, включая изменение или удаление "Командной строки", с которой она была запущена. Или запуск дочернего процесса. (Насколько я помню, Steam проделывает большую работу при каждом запуске, проверяя наличие обновлений и перезапускаясь снова и снова, пока все это не потеряет всякий смысл.)
Короче говоря: даже если сам синтаксис этой строки несколько "законен", реальность может быть какой угодно. Не может быть однозначного ответа, пока кто-то с лучшими инструментами не столкнется с той же проблемой и не исследует ее лично.
решение3
Я думаю, что неявный вопрос здесь в том, является ли c:2\foo
это законным в Windows. Google здесь бесполезен, потому что строки поиска слишком распространены. Но MSDN полезен и подтверждает, что это не так. Смотрите их страницуздесь. Так что это еще один аргумент в пользу того, что ваш клиент Steam строчит над записью. Возможно, он пытается высказать вам свое мнение об игре :)