C# 区别于;DeleteAsync";及;文件。删除“;为什么;DeleteAsync";不';不删除文件?

C# 区别于;DeleteAsync";及;文件。删除“;为什么;DeleteAsync";不';不删除文件?,c#,file,windows-10-universal,storagefolder,C#,File,Windows 10 Universal,Storagefolder,想知道为什么“DeleteAsync”不删除文件,但“file.delete”会删除。有人能给我解释一下吗?起初我认为文件是打开的,但是如果文件是打开的,“file.Delete”不应该也删除它或者 private static async void FILESYSTEM_RemoveVideoPosterIfExist(string posterFileNameOnStorage) { IStorageItem videoPosterIStorageItem = await Appli

想知道为什么“DeleteAsync”不删除文件,但“file.delete”会删除。有人能给我解释一下吗?起初我认为文件是打开的,但是如果文件是打开的,“file.Delete”不应该也删除它或者

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);
        }
    }
}

原因可能是没有本机函数来异步删除文件。托管API通常是围绕非托管API的包装器

看看这个


希望这有帮助

原因可能是没有本机函数来异步删除文件。托管API通常是围绕非托管API的包装器

看看这个


希望这有帮助

如果它抛出异常,您需要查看该异常,以找出它不工作的原因。此外,除非这是一个事件处理程序,否则您不应该使用
async void
。如果它引发异常,您需要查看该异常以找出它不起作用的原因。此外,除非这是一个事件处理程序,否则不应使用
async void
 FileInfo fi = new FileInfo(fileName);
 await fi.DeleteAsync(); // C# 5
 fi.DeleteAsync().Wait(); // C# 4