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'を使うべきではありません。 –
タスクの代わりに非同期ボイドを使用すべきではない理由を簡単に説明できますか?私は答えを感謝します。 – Weissu
ああ、私はちょうどそれを得た! – Weissu