c# - Windows 10 Photo App 无法修改 AppData 文件夹中的图像
问题描述
我正在使用 AppData 文件夹,方法是在其中创建图像并将其发送到 Windows(使用 Process.Start(path-to-image))。这会导致内置照片查看器/编辑器以相关图像启动。当我查看为此创建的进程时,它显示以下作为可执行文件:
Microsoft.Windows.Photos_2018.18041.15530.0_x64__8wekyb3d8bbwe
现在,当我在应用程序中编辑照片并尝试将其保存在现有图像文件上时,照片应用程序说:
Opps! We couldn't save that one.
但是,如果我用不同的名称在它旁边保存一个副本,一切都很好。
我已确保权限允许写入文件等。
请注意,如果我使用 Paint 3D 应用程序编辑图像,我可以覆盖原始文件。
我的问题是:我做错了什么,或者我应该使用更好的地方来存储应用程序特定的数据,我希望我的用户能够使用照片应用程序修改图像。
更新:
即使我尝试启动“ms-paint:”应用程序(Paint 3D),我也看不到能够将参数传递给它。
我只能启动无法保存图像的“基本”绘画应用程序,或者启动无法接受参数的绘画 3d 应用程序。
解决方案
所以,我决定 AppData 目录应该只用于应用程序将要读取和写入的数据。它不应该用于允许用户在那里查看/编辑文件的目的。
因此,我现在将要由用户编辑的图像放入该用户的图片目录中。我用:
Environment.GetFolderPath( Environment.SpecialFolder.MyPictures )
要获得该路径,并使用以下命令启动照片编辑器:
Process.Start( <path to image> )
因此,照片应用程序可以将任何更改写回该文件。
推荐阅读
- javascript - Java Weblauncher - JNLP 问题
- javascript - 从 API 获取数据并显示为名称和网站链接
- swift - 发生错误时向用户显示有意义消息的最常见格式是什么 - Swift
- c++ - 从 CMake 导出的 CodeLite 项目无法编译
- c# - .net core BackgroundService Http Server/GRPC - 停止方法?
- google-app-engine - 如何将现有的 docker 镜像推送到谷歌应用引擎
- laravel - laravel 在不应用强制转换的情况下获取数据
- c# - C#语法分析:获取类型成员
- c# - 一个视图的 2 个模型和转换不起作用
- python - `alembic revision --autogenerate` 产生冗余外键迁移