【问题标题】:Save XElement to Root in UWP with FolderPicker使用 FolderPicker 在 UWP 中将 XElement 保存到根目录
【发布时间】:2016-05-19 05:31:57
【问题描述】:

我遇到了一个我无法理解的奇怪错误......

我一直在 UWP 应用中使用 FolderPicker 来允许用户选择文件夹,并且我需要允许将 xml 文件保存到所选目录。在许多情况下,这将是拇指驱动器的根文件夹。

当我选择驱动器的子文件夹(“G:\Newfolder”)时,我的当前代码工作正常,但当我选择根目录(“G:\”)时失败

我得到的错误声称我没有正确的访问权限,但是当我不小心错误地转义了斜杠时,我得到了同样的错误,所以我不相信错误代码。

我无法保存到拇指驱动器的根目录吗?是不是我又犯了一个错误?

代码如下:

private async void buttonSaveToRoot_Click(object sender, RoutedEventArgs e)
    {
        FolderPicker folderPicker = new FolderPicker();
        folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
        folderPicker.ViewMode = PickerViewMode.List;
        folderPicker.FileTypeFilter.Add(".xml");



        //OK, imagine me picking the root of my thumb drive - "G:\"
        StorageFolder pickedFolder = await folderPicker.PickSingleFolderAsync();

        if (pickedFolder != null)
        {
            Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", pickedFolder);
            XElement xml = new XElement("Food");
            xml.Add (new XElement("Oranges", new XAttribute("Type", "Fruit")));
            xml.Add(new XElement("Apples", new XAttribute("Type", "Fruit")));
            xml.Add(new XElement("Potatoes", new XAttribute("Type", "Vegetables")));
            xml.Add(new XElement("Carrots", new XAttribute("Type", "Vegetables")));

            string savePath = pickedFolder.Path + @"\test.xml";
            savePath = savePath.Replace(@"\\", @"\") ;

            await Task.Run(() =>
            {
                Task.Yield();
                using (FileStream fs = File.Create(savePath))
                {
                    xml.Save(fs);
                }
            });
        }
    }

`

【问题讨论】:

    标签: xml visual-studio-2015 uwp filestream


    【解决方案1】:

    这不是答案,只是一般的观察:

    在组合路径时,不要手动输入斜杠,而是使用

    var savePath = Path.Combine(pickedFolder.Path, "test.xml");
    

    为您节省一些潜在的荷马辛普森“doh”时刻:)

    【讨论】:

    • 谢谢!一旦我获得了足够的声誉,我对此的支持就会发挥作用……我想我进入“美丽新世界”的速度仍然很慢,而且我正在以错误的老式方式做一些事情。不过这让我很担心——使用它我现在确定我没有走错路,这意味着写入根目录似乎确实存在一些抑制。 ://
    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多