将文件保存在文档库 Windows 8 C# 上

本文关键字:Windows 文档 文件 保存 存在 | 更新日期: 2023-09-27 18:36:50

我正在为 Windows 8 创建一个简单的应用程序,它将 xml 文件写入文档库。

问题是当我保存文件时,它将其保存在skydrive上,我想将其保存在c:''Users''pc-name''Documents上。我正在使用KnownFolder.DocumentsLibrary并更新了清单以保存xml文件,否则我无法在其中保存任何文件。

public static async void XmlSaveFreeChallenge(Challenge currentChallenge)
{
    var challenge = new XElement("Challenge");
    var docSave = new XDocument(challenge);
    challenge.Add(new XAttribute("Name", currentChallenge.Template));
    var pontos = new XElement("Type", currentChallenge.Type);
    docSave.Descendants("Challenge").FirstOrDefault().Add(pontos);
    var folder = KnownFolders.DocumentsLibrary;
    var outputStream = await folder.OpenStreamForWriteAsync("CaiMUfiles''output''Desafios''" + currentChallenge.Template + ".xml", CreationCollisionOption.ReplaceExisting);
    var ms = new MemoryStream();
    docSave.Save(outputStream, SaveOptions.None);
    await ms.CopyToAsync(outputStream);
 }

将文件保存在文档库 Windows 8 C# 上

用户可以

选择文档库指向的位置。请参阅以下选项:设置超级按钮 -> 更改电脑设置 -> SkyDrive -> 默认将文档保存到 SkyDrive

我不确定您的应用程序是否可以覆盖用户在那里的选择。即使有可能,最好尊重用户的选择。

艾萨克·麦加维(Isaac McGarvey)所说的是正确的,但你可以做一些事情。 我没有找到如何以编程方式切换库的默认保存文件夹的方法,但您仍然可以访问库中包含的所有文件夹。唯一的想法是你需要知道绝对路径,所以如果你可以在之前保存路径,那么你可以使用它来获取所需的文件夹:

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync("AbsolutePath");

然后你可以开始枚举创建或任何你需要的东西。问题是,如果您使用例如

List<StorageFolder> folder = await KnownFolders.DocumentsLibrary.GetFoldersAsync();

您不会获得文档文件夹和SkyDrive文件夹以及库其他链接文件夹的文件夹,您只会在一个列表中获得所有这些文件夹中的所有文件夹,这意味着您无法选择保存文件的位置。

我希望这有所帮助。