我通过在AppData文件夹中创建图像并将其外壳到Windows(使用Process.Start(path-to-image))来使用AppData文件夹。这会导致内置的照片查看器/编辑器从相关图像启动。当我查看为此创建的过程时,它将以下内容显示为可执行文件:
Microsoft.Windows.Photos_2018.18041.15530.0_x64__8wekyb3d8bbwe
现在,当我在应用程序中编辑照片并尝试将其保存在现有图像文件上时,照片应用程序会显示:
Opps! We couldn't save that one.
但是,如果我在副本旁边保存一个名称不同的副本,一切都很好。
我确保权限允许在文件等上写入内容。
请注意,如果我使用Paint 3D应用程序编辑图像,则可以覆盖原始文件。
我的问题是:我做错了什么吗,或者我应该在一个更好的地方存储应用程序特定的数据,以便我的用户能够使用照片应用程序修改图像。
更新:
即使我尝试启动“ ms-paint:”应用程序(Paint 3D),也看不到能够将参数传递给它。
我剩下的工作是启动无法保存图像的“基本”绘画应用程序,或者启动无法接受参数的paint 3d应用程序。
答案 0 :(得分:1)
因此,我决定AppData目录仅应用于应用程序将要读取和写入的数据。 请勿用于允许用户在那里查看/编辑文件的目的。
因此,我现在将要由用户编辑的图像放入该用户的“图片”目录中。我使用:
Environment.GetFolderPath( Environment.SpecialFolder.MyPictures )
要获取该路径,并使用以下命令启动照片编辑器:
Process.Start( <path to image> )
因此,照片应用可以将所有更改写回到该文件。