0
想知道爲什麼「DeleteAsync」不會刪除文件,但「File.Delete」會執行此操作。誰可以給我解釋一下這個?起初我認爲該文件是打開的,但如果文件打開「File.Delete」不應該刪除它也...或?「DeleteAsync」和「File.Delete」之間的區別以及爲什麼「DeleteAsync」不刪除文件?
private static async void FILESYSTEM_RemoveVideoPosterIfExist(string posterFileNameOnStorage)
{
IStorageItem videoPosterIStorageItem = await ApplicationData.Current.LocalFolder.TryGetItemAsync(SYSTEM_UserVideoPosterFolder + @"\" + DATABASE_SelectedUserInformation.UserName + "." + SYSTEM_UserPosterFolderExtension + @"\" + posterFileNameOnStorage);
if (videoPosterIStorageItem != null)
{
try
{
//Why this doesn't delete file...
await videoPosterIStorageItem.DeleteAsync(StorageDeleteOption.PermanentDelete);
}
catch
{
//But this one will delete file.
StorageFolder applicationStorageFolder = await ApplicationData.Current.LocalFolder.GetFolderAsync(SYSTEM_UserVideoPosterFolder + @"\" + DATABASE_SelectedUserInformation.UserName + "." + SYSTEM_UserPosterFolderExtension + @"\");
File.Delete(applicationStorageFolder.Path + @"\" + posterFileNameOnStorage);
}
}
}
如果它拋出一個異常,你需要查看異常,以便找出爲什麼它不起作用。另外,除非這是一個事件處理程序,否則不應該使用'async void'。 –
你能否簡要解釋我爲什麼不應該使用異步void而不是Task?我很欣賞答案。 – Weissu
哦,我剛剛拿到了! – Weissu