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 方法的路径参数允许指定相对或绝对路径信息。相对路径信息被解释为相对于当前工作目录。但是在您的代码中,文件夹名称与您的工作目录无关(实际上,您的工作目录是 Windows.ApplicationModel.Package.Current.InstalledLocation)。
其次,在UWP中,CreateFolderAsync的方法有一个带有CreationCollisionOption参数的重载方法。
请在您的代码中更改此部分
if (!Directory.Exists(folderName))
{
await usbStorage.CreateFolderAsync(folderName);
}
到
await usbStorage.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists);
会好的
我正在尝试检查文件夹是否存在.. 如果不存在,我将需要创建一个文件夹。如果文件夹不存在并创建一个文件夹,我的代码似乎可以工作......但随后在创建文件夹之后......它会遇到异常处理程序...... 我不确定哪里出了问题..请指教。 谢谢
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 方法的路径参数允许指定相对或绝对路径信息。相对路径信息被解释为相对于当前工作目录。但是在您的代码中,文件夹名称与您的工作目录无关(实际上,您的工作目录是 Windows.ApplicationModel.Package.Current.InstalledLocation)。
其次,在UWP中,CreateFolderAsync的方法有一个带有CreationCollisionOption参数的重载方法。
请在您的代码中更改此部分
if (!Directory.Exists(folderName)) { await usbStorage.CreateFolderAsync(folderName); }
到
await usbStorage.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists);
会好的