Что означает «C: 2» в строке пути Windows?


14

Я получил это всплывающее окно от брандмауэра Windows. Что такое "C: 2 \" в пути? Настоящий путьD:\Steam\SteamApps\common\...

Диалоговое окно брандмауэра Windows

Я пробовал 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\...


3
Если бы я рискнул догадаться. По какой-то причине Steam сообщил о неверном местоположении, C: 2 \ - это синтаксис, специфичный для steam.
— Ramhound

3
Технически это правильный путь. Он называет 2подкаталог в текущем рабочем каталоге диска C. Конечно, если диск CWD на диске C не имеет такого подкаталога, вы не можете записать на него компакт-диск.
— MSalters

Существует ли D: как отдельный физический жесткий диск или как раздел системного диска?
— Тайсон

@ Тайсон: отдельный физический диск.
— HAL 9000

2
которая подхватывает одну из моих теорий ... Если ваш комфортный уровень реестра позволяет, попробуйте поискать в реестре `C: 2`
— Tyson

Ответы:


2

# 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", это также приведет к этому синтаксису.

Основная проблема : я ожидал, что Брандмауэр покажет фактический абсолютный путь.


+1 за относительный путь. Хотя это кажется неправильным. Предоставляются фактические пути, включая D: \ Steam \ SteamApps \ common \, поэтому подкаталог с именем 2, по-видимому, не является его частью. Тем не менее, ваш ответ дает хорошее мышление, и идея полезна для людей, поэтому ваш ответ будет полезен (даже если он не правильный).
— TOOGAM

0

Не видя, что на самом деле находится в памяти запущенного процесса, трудно сказать.

Вообще говоря, программа может делать много дерьма со своей собственной памятью, включая изменение или удаление «Командной строки», с которой она была выполнена. Или выполнение дочернего процесса. (Насколько я помню, каждый раз, когда он запускается, Steam делает все возможное, проверяет наличие обновлений и перезапускает себя, пока все не потеряет смысл.)

Короче говоря: даже если сам синтаксис этой строки несколько «легален», реальность может быть чем угодно. Не может быть решающего ответа, пока кто-то с лучшими инструментами не столкнется с той же самой проблемой и не исследует это лично.


0

Я думаю, что здесь неявный вопрос, является ли c:2\fooзаконным в Windows. Google здесь не помогает, потому что строки поиска слишком распространены. Но MSDN полезен и подтверждает, что это не так. Смотрите их страницу здесь . Так что это еще одна точка данных в поддержку вашего клиента Steam, пишущего над записью. Возможно, он пытается высказать свое мнение об игре :)


По вашей ссылке: «C: tempdir \ tmp.txt относится к файлу в подкаталоге текущего каталога на диске C.» Если tempdir называется «2», это будет допустимый относительный путь. Однако удивительно, что брандмауэр не показывает абсолютный путь.
— Mtone

Отличное место. Да, это, безусловно, возможно.
— AlwaysLearning
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.