是否可以将文件保存到确切的特定位置? (Windows 8.1 通用应用程序 C#)
Posted
技术标签:
【中文标题】是否可以将文件保存到确切的特定位置? (Windows 8.1 通用应用程序 C#)【英文标题】:Is it possible to save a file to an exact, specific location? (Windows 8.1 Universal App C#) 【发布时间】:2016-12-21 12:50:42 【问题描述】:我需要做什么:
在应用运行时将图像文件保存到准确的特定位置(比如“Z:\test\photo.jpeg”)。
其他需要的功能:
1) 如果文件 ''Z:\test\photo.jpeg' 已经存在,则覆盖它。
2) 如果文件夹 'Z:\test\' 不存在,则跳过写入。
我已经尝试过的:
using Windows.Media.Capture.UI;
using Windows.Storage;
CameraCaptureUI camera = new CameraCaptureUI();
StorageFile photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (photo != null)
var targetFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("photo.jpeg", CreationCollisionOption.ReplaceExisting);
if (targetFile != null)
await targetFile.DeleteAsync();
await photo.MoveAndReplaceAsync(targetFile);
问题:
有没有办法让变量'targetFile'指向一个特定的位置,例如。 "Z:\test\photo.jpeg"?
我不想使用本地应用程序数据文件夹、图片文件夹或类似的东西。它必须是这个特定的位置。
【问题讨论】:
如果我理解你的问题。你可以看看Environment.SpecialFolder
我看了看,SpecialFolder 不作为 System.Environment 的一部分存在于 8.1 应用中
【参考方案1】:
通用应用程序是沙盒的,只能访问它们的存储文件夹。
您可以使用FileOpenPicker 或FolderPicker 授予对其他文件的访问权限,但您无法控制用户选择让您写入哪个文件。
这意味着您必须让用户选择要存储的确切文件,否则您的应用无法访问该位置。
这里是accessible file locations for UWP apps on MSDN 的概述。
【讨论】:
对于选择器,是否可以将 SuggestedStartLocation 设置为我的特定路径? (“Z:\测试\”)?我在文档中的任何地方都找不到它,它似乎只能接受一系列预设的常见位置(我的图片文件夹等),而不是自定义文件路径 不,仅支持此列表中的项目:msdn.microsoft.com/en-us/library/windows/apps/… 令人沮丧,但我想这是一个可以理解的安全决定。谢谢以上是关于是否可以将文件保存到确切的特定位置? (Windows 8.1 通用应用程序 C#)的主要内容,如果未能解决你的问题,请参考以下文章