2012-03-16 15 views
0

taglib#で既存のmp3にタグ付けしたいと思います。 次のエラーメッセージが表示されます。 "プロセスは別のプロセスで使用されているため、ファイルにアクセスできません。" どのようなプロセスが可能かわかりません。私は私のハードドライブ上の任意のMP3ファイルにアクセスすることができます、私はまた、ファイルのプロパティを使用することができますが、私は変更を保存することはできません。taglib#変更を保存できません

これはコードです。

OpenFileDialog f = new OpenFileDialog(); 
if ((bool)f.ShowDialog()) 
{ 
    try 
    { 
     if (f.OpenFile() != null) 
     { 

     TagLib.File file = TagLib.File.Create(f.FileName);        
     file.Tag.Album = "Album1"; 
     file.Save(); 

     } 
    } 
    catch (Exception ex) 
    { 
    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
    } 
} 
else 
{ 
    MessageBox.Show("Problem occured, try again later"); 
} 

お手伝いできますか? ありがとう

+0

これが本当にあなたのエラーなら、あなたの質問は、MP3ファイルを使用しているものを見つけることです。 http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-netおよびhttp://stackoverflow.com/questions/177146/how-do-i-get-the-open-file-handle-by-process-in-cヘルプ?書き込みアクセス権を持つストリームを開いていない場合を除きます。未使用のMP3が使用されていることは奇妙です。 – Jason

+1

'f.OpenFile()'は決して 'null'を返しません。 – SLaks

+0

「キャンセル」をクリックすると「問題が発生しました」というメッセージが表示されるのはなぜですか? – SLaks

答えて

2

f.OpenFile()は、ファイルの周りにFileStreamを作成します。
このストリームを決して閉じることはないので、ファイルは開いたままです。

しないでください。

関連する問題