如果使用 broadFileSystemAccess 和 runFullTrust,UWP 应用程序能否更改另一个应用程序的 AppData 文件夹中的文件?
Can a UWP app change files in another app's AppData folder if using broadFileSystemAccess and runFullTrust?
我有一个 C# Windows 表单应用程序(大致)可以执行以下操作:
- OpenFileDialog() <-- 指向文件路径
- File.Exists() <-- 确认文件路径有效
- File.GetLastWriteTime() <-- 检查文件的最后修改时间
- ZipArchive.CreateEntryFromFile() <-- 如果文件已更改则创建新的 zip
我正在尝试让该应用程序作为 UWP 应用程序运行。我已经成功地将它编译成 APPX,并且 installs/launches 很好。然而,它处理的所有文件 activity 似乎都卡在文件系统的 cached/sandbox 版本中。
例如:
- 我在应用程序中 select C:\Temp\hello.txt(上面的第 1 步)
- 然后我在记事本中修改文本文件,保存退出
- 然后我触发我的应用程序执行步骤#3 和#4
- 但是第 3 步声称文件没有更改。 这就是让我认为 UWP 应用正在查看我的文件系统的缓存或沙盒集的原因?或者这里发生了什么奇怪的事情?
- 此外,如果我尝试强制应用程序制作 zip 而不管上次修改日期,当我检查文件夹时实际上没有创建 zip 文件 - 这再次让我想知道应用程序是否卡在某些 sandbox/cache 我的文件系统不是实际的文件系统?
- (新)这里另一个有趣的线索是,如果我打开 Windows Explorer window 到 C:\Temp,我可以单独看到我的 hello.txt 文件。如果我将 UWP 应用程序中的 openFileDialog() 打开到 C:\Temp,我可以看到我的 hello.txt 文件和它创建的 hello.zip 文件。所以 windows 都使用 C:\Temp 但它们显示不同的文件!?
其他注意事项:
- 正在通过桌面桥创建 UWP 应用程序(makeappx.exe)
- 我的 AppManifest.xml 确实声明了适当的 broadFileSystemAccess 和 runFullTrust 功能。
- 我已在 Windows 10 的“文件系统隐私设置”对话框中将应用程序设置为允许访问文件系统。
- 当 运行 作为 class *.exe(不是 UWP/Appx)
时,该应用程序运行良好
桌面桥捕获并将文件写入重定向到作为包一部分的文件夹。您可以在 the official docs 中阅读更多相关信息。目的是让操作系统在卸载应用程序时清理这些文件。
只要用户有权访问该文件夹,您就应该能够写入不属于包一部分的文件夹,然后您应该能够在 File 中看到该实际文件夹中的文件探索者。
我有一个 C# Windows 表单应用程序(大致)可以执行以下操作:
- OpenFileDialog() <-- 指向文件路径
- File.Exists() <-- 确认文件路径有效
- File.GetLastWriteTime() <-- 检查文件的最后修改时间
- ZipArchive.CreateEntryFromFile() <-- 如果文件已更改则创建新的 zip
我正在尝试让该应用程序作为 UWP 应用程序运行。我已经成功地将它编译成 APPX,并且 installs/launches 很好。然而,它处理的所有文件 activity 似乎都卡在文件系统的 cached/sandbox 版本中。
例如:
- 我在应用程序中 select C:\Temp\hello.txt(上面的第 1 步)
- 然后我在记事本中修改文本文件,保存退出
- 然后我触发我的应用程序执行步骤#3 和#4
- 但是第 3 步声称文件没有更改。 这就是让我认为 UWP 应用正在查看我的文件系统的缓存或沙盒集的原因?或者这里发生了什么奇怪的事情?
- 此外,如果我尝试强制应用程序制作 zip 而不管上次修改日期,当我检查文件夹时实际上没有创建 zip 文件 - 这再次让我想知道应用程序是否卡在某些 sandbox/cache 我的文件系统不是实际的文件系统?
- (新)这里另一个有趣的线索是,如果我打开 Windows Explorer window 到 C:\Temp,我可以单独看到我的 hello.txt 文件。如果我将 UWP 应用程序中的 openFileDialog() 打开到 C:\Temp,我可以看到我的 hello.txt 文件和它创建的 hello.zip 文件。所以 windows 都使用 C:\Temp 但它们显示不同的文件!?
其他注意事项:
- 正在通过桌面桥创建 UWP 应用程序(makeappx.exe)
- 我的 AppManifest.xml 确实声明了适当的 broadFileSystemAccess 和 runFullTrust 功能。
- 我已在 Windows 10 的“文件系统隐私设置”对话框中将应用程序设置为允许访问文件系统。
- 当 运行 作为 class *.exe(不是 UWP/Appx) 时,该应用程序运行良好
桌面桥捕获并将文件写入重定向到作为包一部分的文件夹。您可以在 the official docs 中阅读更多相关信息。目的是让操作系统在卸载应用程序时清理这些文件。
只要用户有权访问该文件夹,您就应该能够写入不属于包一部分的文件夹,然后您应该能够在 File 中看到该实际文件夹中的文件探索者。