在 UWP 中创建文件和文件夹

Asp*_*ger 2 c# uwp

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

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

  <Capabilities>
    <uap:Capability Name="documentsLibrary" />
  </Capabilities>
Run Code Online (Sandbox Code Playgroud)

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

Xeo*_*rge 5

正如微软在其文档中所述,它重新开始不通过 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();
          }

}
Run Code Online (Sandbox Code Playgroud)

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

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

string name ="myTitle.txt";
            await folder.CreateFileAsync(name, CreationCollisionOption.GenerateUniqueName);
Run Code Online (Sandbox Code Playgroud)

以下是如何打开和写入文件:

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

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

                           return;
                       }
Run Code Online (Sandbox Code Playgroud)

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

 var folder= ApplicationData.Current.LocalFolder;
Run Code Online (Sandbox Code Playgroud)