- Отказ от ответственности: Следующая процедура сделана с чрезмерным упрощением, чтобы обычный пользователь мог понять. Упомянутые статьи для энтузиастов. Другие могут пропустить те.
Обычные исполняемые файлы Windows (Win32) предпочтительно хранят файлы конфигурации пользователя / журнала в %LocalAppData%
папке, которая есть C:\Users\%USERNAME%\AppData\Local
. Но в Windows Universal Platform (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..."