繁体   English   中英

Windows IoT Raspberry Pi 3 c#检查文件夹是否存在如果没有创建

[英]Windows IoT Raspberry Pi 3 c# Check Folder Exist Create if not

我试图检查文件夹是否存在..如果不存在,则需要创建一个文件夹。 如果该文件夹不存在并创建一个文件夹,我的代码似乎可以正常工作...但是在创建该文件夹之后。.它会遇到异常处理程序..我不确定哪里出错了..请指教。 谢谢。

        StorageFolder externalDevices = KnownFolders.RemovableDevices;
        IReadOnlyList<StorageFolder> externalDrives = await externalDevices.GetFoldersAsync();
        StorageFolder usbStorage = externalDrives[0];
        String folderName = "Recordings";
        String fileName = DateTime.Now.ToString();

        if (!Directory.Exists(folderName))
        {
            await usbStorage.CreateFolderAsync(folderName);
        }

        await usbStorage.GetFolderAsync(folderName);
        StorageFolder recordFolder = await usbStorage.GetFolderAsync(folderName);
        StorageFile recordFile = await recordFolder.CreateFileAsync("Recording -" + DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".mp3", Windows.Storage.CreationCollisionOption.GenerateUniqueName);

        RecordStatus.Text = "File setup OK ... ";

首先,这里不适合使用Directory.Exists检查折叠是否存在。 Directory.Exists方法的path参数允许指定相对或绝对路径信息。 相对路径信息被解释为相对于当前工作目录。 但是在您的代码中,folderName并不是相对于您的工作目录的(事实上,您的工作目录是Windows.ApplicationModel.Package.Current.InstalledLocation)。

其次,在UWP中,CreateFolderAsync方法具有带有CreationCollisionOption参数的重载方法。

请在您的代码中更改此部分

 if (!Directory.Exists(folderName)) { await usbStorage.CreateFolderAsync(folderName); } 

  await usbStorage.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists);

一切都会安好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM