2016-05-31 2 views
0

Je suis en train de tester MediaElement en WPF.Comment supprimer le dossier après MediaElement dans le fichier de lecture WPF

mais fréquemment Directory.Delete erreur de fonction.

Je ne sais pas Pourquoi l'erreur se produit-elle?

MediaElement mediatest = new MediaElement(); 
    mediatest.LoadedBehavior = MediaState.Manual; 
    root.Children.Add(mediatest); 

mediatest.BeginInit(); 
mediatest.Source = null; 
mediatest.Source = new Uri(MediaSrc); 
mediatest.EndInit();. 
mediatest.Play(); 

stop() 
mediatest.Stop(); 
mediatest.Close();    
mediatest.Source = null;    
mediatest = null; 
root.Children.Clear(); 
System.IO.Directory.Delete(System.IO.Path.Combine(Environment.CurrentDirectory, @"sound"), true); 
+0

Quel genre d'exception obtenez-vous? – EngineerSpock

+0

c'est "System.IO.IOException: Le répertoire n'est pas vide." mais quand j'ai trouvé le dossier, où était aucun fichier du tout. – user3180449

Répondre

0

Essayez d'utiliser au lieu de Directory.Delete la méthode suivante:

public static void DeleteDirectory(string target_dir) 
{ 
    string[] files = Directory.GetFiles(target_dir); 
    string[] dirs = Directory.GetDirectories(target_dir); 

    foreach (string file in files) 
    { 
     File.SetAttributes(file, FileAttributes.Normal); 
     File.Delete(file); 
    } 

    foreach (string dir in dirs) 
    { 
     DeleteDirectory(dir); 
    } 

    Directory.Delete(target_dir, false); 
} 
+0

Je l'ai essayé, mais le même problème apparaît. et j'essaie de le vérifier. – user3180449

0

Je l'ai essayé, mais le même problème apparaît. et j'essaie de le vérifier.

mediatest.Stop(); 
mediatest.Close();    
mediatest.Source = null;    
mediatest = null; 
root.Children.Clear(); 
GC.Collect(); 

mais le même problème réapparaît. puis je changé source suivant

GC.Collect(); 
Thread.Sleep(500); 

maintenant je n'ai pas vu une erreur jusqu'à présent.