Jam*_*mes 1 c# io local-storage windows-8 windows-runtime
我使用下面的代码在应用程序安装的文件夹中创建文件夹,但我alwasy接收访问被拒绝的异常.
StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
if (!await CheckIfFolderExist(appDataFolderName))
{
StorageFolder appDataFolder = await appFolder.CreateFolderAsync(appDataFolderName);
StorageFolder userFolder = await appDataFolder.CreateFolderAsync(userFolderName);
StorageFolder contactFolder = await appDataFolder.CreateFolderAsync(contactFolderName);
}
else
{
StorageFolder appDataFolder = await appFolder.GetFolderAsync(appDataFolderName);
if (!await CheckIfSubFolderExis(appDataFolderName, userFolderName))
{
await appDataFolder.CreateFolderAsync(userFolderName);
}
if (!await CheckIfSubFolderExis(appDataFolderName, contactFolderName))
{
await appDataFolder.CreateFolderAsync(contactFolderName);
}
}
// Check if the app folder exists
private async Task<bool> CheckIfFolderExist(string folderName )
{
bool folderExist = false;
try
{
StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder appDataFolder = await appFolder.GetFolderAsync(folderName);
folderExist = true;
return folderExist;
}
catch (FileNotFoundException ex)
{
return folderExist;
}
}
// Check if the app subfolder exists
private async Task<bool> CheckIfSubFolderExis(string folderName,string subFolderName)
{
bool subFolderExist = false;
try
{
StorageFolder appFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder subFolder = await appFolder.GetFolderAsync(subFolderName);
subFolderExist = true;
return subFolderExist;
}
catch (FileNotFoundException ex)
{
return subFolderExist;
}
}
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
您无法在应用数据文件夹中创建文件夹.您必须使用LocalFolder,RomaingFolder或TemporaryFolder(都在ApplicationData类中找到)
这样做的原因是支持软件升级等.为什么要保存在appdata文件夹中 - 也许我可以建议上面使用的最佳文件夹.
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |