- Отказ от ответственности: Следующая процедура сделана с чрезмерным упрощением, чтобы обычный пользователь мог понять. Упомянутые статьи для энтузиастов. Другие могут пропустить те.
Обычные исполняемые файлы Windows (Win32) предпочтительно хранят файлы конфигурации / журнала пользователя в папке %LocalAppData%
которая находится в C:\Users\%USERNAME%\AppData\Local
. Но в универсальной платформе Windows (UWP) этот путь перенаправляется на другой путь, который называется C:\Users\%USERNAME%\AppData\Local\Packages\package_name
. package_name
специфично для соответствующего пакета UWP. При таком типе перенаправления пути файлы конфигурации / журнала пользователя автоматически удаляются во время удаления. Следуйте этой статье для более подробной информации.
Вот структуры пути:
Папка установки:
- Обычное приложение:
C:\Program Files\
- Приложение UWP:
C:\Program Files\WindowsApps\<Publisher Name>.<App Name>_<Version Code>_<Random String>
Локальная папка AppData:
- Обычное приложение:
C:\Users\<User Name>\AppData
- Приложение UWP:
C:\Users\<User Name>\AppData\Local\Packages\<Publisher Name>.<App Name>_<Random String>
Теперь сравните следующий пример с приведенными выше структурами путей. Ubuntu 18.04 из Windows Store устанавливается в:
C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.427.0_x64__79rhkp1fndgsc
И перенаправленные локальные данные приложения будут:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState
Я создал сценарий PowerShell, с помощью которого можно открыть эту папку Linux rootfs (т.е. /
) в проводнике. При этом используется командлет Get-AppxPackage для получения имени пакета Appx. Скопируйте следующие строки в Блокнот и сохраните его с расширением .ps1 (вместо .txt). Затем запустите его в PowerShell.
$DistroName=Read-Host "Enter Distribution Name"
$pacakgeName = (Get-AppxPackage *$DistroName*).PackageFamilyName
$appData = [System.Environment]::ExpandEnvironmentVariables("%LocalAppData%")
$rootfs = $appData + "\Packages\" + $pacakgeName + "\LocalState\rootfs"
echo $rootfs
Invoke-Item $rootfs
Read-Host -Prompt "Press any key to continue..."