【问题标题】:check if a folder exists uwp xamarin.forms检查文件夹是否存在 uwp xamarin.forms
【发布时间】:2022-11-12 04:54:33
【问题描述】:

我正在尝试使用 uwp 在下载文件夹中创建一个文件夹,我想在这个文件夹中创建 pdf 文件。这是应该发生的事情:第一次单击按钮时,将创建文件夹以及对应于客户端的 pdf 文件。在单击第二个按钮时,必须检查该文件夹是否存在,因此只应在其中创建 pdf 文件。问题是我的代码,没有检查文件夹存在的部分,在第一次点击时工作,但在第二次点击时不起作用,因为我得到一个例外,即文件夹已经存在。但是对于“if”部分,它根本不起作用。就像什么都没有被创造。这是我的代码:

[assembly: Dependency(typeof(getpathUWP))]
namespace ALNahrainAlphaApp.UWP
{
    public class getpathUWP : path
    {
        public Task< string> get_path(string foldername, string filename, byte[] ar)
        {
            Task<string> t = Task.Run(() => pathtoget(foldername,filename,ar));

            return t;
           

        }

       

        async private Task<string> pathtoget(string foldername, string filename, byte[] ar )
        {
            //  StorageFolder newFolder = null;
          
            if (!File.Exists(@"C:\Users\ALNOOR\Downloads\d98cfcb0-e3cb-48e3-b720-fd9ace0ca7e8_htzz2mrv9gx22!App\alnahrainfiles"))
            {
                StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(@"C:\Users\ALNOOR\Downloads\d98cfcb0-e3cb-48e3-b720-fd9ace0ca7e8_htzz2mrv9gx22!App\alnahrainfiles");
                StorageFile file = await folder.CreateFileAsync(filename);
                Stream stream = await file.OpenStreamForWriteAsync();
                stream.Write(ar, 0, ar.Length);
                stream.Flush();
            }
               
           

              
            else 
            {
                StorageFolder newFolder = await DownloadsFolder.CreateFolderAsync(foldername);

                StorageFile file = await newFolder.CreateFileAsync(filename);
                Stream stream = await file.OpenStreamForWriteAsync();
                stream.Write(ar, 0, ar.Length);
                stream.Flush();
            }

            return "";
           
        }
        }
}

请注意,我正在使用依赖服务。我尝试了其他方法来检查该文件夹是否存在,但没有任何效果。我究竟做错了什么?

【问题讨论】:

    标签: xamarin.forms uwp storagefile storagefolder


    【解决方案1】:

    如果文件夹存在,这将打开该文件夹,如果不存在,则创建并打开它

    StorageFolder newFolder = await DownloadsFolder.CreateFolderAsync(foldername, CreationCollisionOption.OpenIfExists);
    

    【讨论】:

      【解决方案2】:

      在文档File.Exists 中,它说:

      如果 path 描述了一个目录,则此方法返回 false。

      要检查目录是否存在,请参阅 Directory.Exists。

      将您的代码更改为:

      if (!Directory.Exists(
      

      【讨论】:

        猜你喜欢
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        • 2013-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多