2016-05-31 23 views
0

MediaElementをテストしています。WPF再生ファイルでMediaElementの後にフォルダを削除する方法

ですが、しばしばDirectory.Deleteの機能がエラーを表示します。

私は知らないなぜエラーが発生するのですか?

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

どのような例外がありますか? – EngineerSpock

+0

"System.IO.IOException:ディレクトリが空ではありません。"しかし、私がフォルダを見つけたとき、ファイルは全くありませんでした。 – user3180449

答えて

0

Directory.Deleteの代わりに以下の方法を使用してください:

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

私はそれを試しましたが、同じ問題が発生します。私はそれをチェックしようとしています。 – user3180449

0

を私はそれを試してみましたが、同じ問題が表示されます。私はそれをチェックしようとしています。

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

しかし、同じ問題が再度表示されます。 そして私は今、私がこれまでにエラーが表示されませんでした

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

次のソースを変更しました。

関連する問題