【问题标题】:Creating Files and Folders in UWP在 UWP 中创建文件和文件夹
【发布时间】:2017-08-30 09:15:26
【问题描述】:

我查看了很多 stackoverflow 帖子和文章,但仍然无法在 UWP 中创建文件。在 WPF 中这很容易,但 UWP 的工作方式不同。

我在清单文件中添加了以下内容:

  <Capabilities>
    <uap:Capability Name="documentsLibrary" />
  </Capabilities>

现在我不确定下一步该做什么。在我的文档文件夹中,我有一个名为“项目文件”的子文件夹。我想在那里创建文件夹和文件。这是如何在 UWP 中完成的?我真的不明白。

【问题讨论】:

  • 是否只需要在文档文件夹中创建文件和文件夹?如果没有,您可以使用应用程序的本地文件夹毫无问题地创建文件夹和文件..

标签: c# uwp


【解决方案1】:

正如微软在他们的文档中所说,它建议不要通过 UWP 应用程序使用文档库,而是选择内置存储,除非绝对必要。

如果您使用文件夹选择器,有一个简单的方法可以解决这个问题

 private async void buttonClick(){
            FolderPicker folderPicker = new FolderPicker();
     folderPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
      folderPicker.FileTypeFilter.Add("*");

          StorageFolder folder=  await folderPicker.PickSingleFolderAsync();
         if (folder != null) { 

              //  do Things On Folder

          }
           else
          {
              MessageDialog dialog = new MessageDialog("you selected nothing");
             await dialog.ShowAsync();
          }

}

上面打开了一个文件夹选择对话框,它返回用户选择的文件夹,这是访问应用程序文件夹之外的位置的推荐方式。

以下是在此文件夹中创建新文件的方法:

string name ="myTitle.txt";
            await folder.CreateFileAsync(name, CreationCollisionOption.GenerateUniqueName);

以下是打开和写入文件的方法:

         try {
                           StorageFile myFile = await folder.GetFileAsync(name);
                           await Windows.Storage.FileIO.WriteTextAsync(myFile,  "myStringContent");

                               }
                       catch (Exception e)
                       {
                           Debug.WriteLine("Failure: "+e.Message);

                           return;
                       }

请记住,如果您使用本地存储,则始终可以避免打开对话框,它会在一行中返回您应用的存储文件夹,如下所示:

 var folder= ApplicationData.Current.LocalFolder;

【讨论】:

    【解决方案2】:

    我相信 UWP 使用文档库既不被推荐也不被允许。见https://blogs.msdn.microsoft.com/wsdevsol/2013/05/09/dealing-with-documents-how-not-to-use-the-documentslibrary-capability-in-windows-store-apps/

    如果您侧加载应用程序并使用文档库功能,则应用程序只能访问已声明的文件类型,而不是文档中的所有内容。 见https://msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx#special_capabilities

    请注意,此特殊功能不会让您通过应用商店中的应用认证,除非您先通过一些特殊程序联系 MS。

    要创建文件夹,请使用 StorageFolder。要创建文件,请使用 StorageFile。 见https://docs.microsoft.com/en-us/windows/uwp/files/quickstart-reading-and-writing-files

    【讨论】:

    • 微软懒惰程序员的另一个例子。他们没有让“文件”工作,而是制作了一个新的“存储文件”
    猜你喜欢
    • 2014-05-08
    • 2018-03-13
    • 1970-01-01
    • 2012-06-03
    • 2018-12-02
    • 1970-01-01
    • 2014-01-17
    • 2022-01-21
    • 2020-03-03
    相关资源
    最近更新 更多