Windows IoT Raspberry Pi 3 C# Проверить наличие папки Создать Если нет

Я пытаюсь проверить, существует ли папка... если нет, мне нужно будет создать папку. Мой код, кажется, работает, если папка не существует и создает папку... но впоследствии после создания папки.. он запускается в обработчик исключений.. Я не уверен, где пошло не так.. пожалуйста, сообщите. Благодарю.

        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 ... ";

1 ответ

Решение

Во-первых, использование Directory.Exists для проверки существования сгиба здесь не подходит. Параметру пути метода Directory.Exists разрешено указывать информацию об относительном или абсолютном пути. Информация об относительном пути интерпретируется как относительно текущего рабочего каталога. Но в вашем коде имя_папки не относится к вашему рабочему каталогу (фактически, ваш рабочий каталог - Windows.ApplicationModel.Package.Current.InstalledLocation).

Во-вторых, в UWP метод CreateFolderAsync имеет метод перегрузки с параметром CreationCollisionOption.

Пожалуйста, измените эту часть в вашем коде

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

к

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

Все будет хорошо.

Другие вопросы по тегам