簡體   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