我有一个C#Windows Form应用程序,其功能(大致)类似于:
- OpenFileDialog()<-指向文件路径
- File.Exists()<-确认文件路径有效
- File.GetLastWriteTime()<-检查文件的上次修改时间
- ZipArchive.CreateEntryFromFile()<-如果文件已更改,则创建新的zip
我正在尝试使该应用程序作为UWP应用程序运行。我已经成功地将其编译为APPX,并且可以很好地安装/启动。但是,似乎它处理的所有文件活动都停留在文件系统的缓存/沙盒版本中。
例如:
- 我在应用中选择了C:\ Temp \ hello.txt(上面的步骤1)
- 然后我在记事本中修改文本文件,保存并退出
- 然后我触发我的应用执行步骤3和#4
- 但是,步骤3声称文件未更改。 这是什么让我认为UWP应用正在查看文件系统的缓存集或沙盒集?还是这里发生了其他奇怪的事情?
- 此外,如果无论上次修改日期如何我都试图强制应用制作zip文件,则在我检查文件夹时实际上没有创建任何zip文件-再次使我怀疑应用程序是否卡在某些沙箱/缓存中我的文件系统不是实际的文件系统?
- (新)这里的另一个有趣线索是,如果我将Windows资源管理器窗口打开到C:\ Temp,则可以自己看到我的hello.txt文件。如果在UWP应用中打开C:\ Temp的openFileDialog(),则可以看到我的hello.txt文件和它创建的hello.zip文件。因此,两个窗口都使用C:\ Temp,但是它们显示不同的文件!
其他说明:
- 正在通过桌面网桥(makeappx.exe)创建UWP应用
- 我的AppManifest.xml确实声明了适当的broadFileSystemAccess和runFullTrust功能。
- 我已在Windows 10的“文件系统隐私设置”对话框中将应用程序设置为允许文件系统访问。
- 作为类* .exe(不是UWP / Appx)运行时,该应用程序运行正常。