2011-06-23 11 views
0

ID3libとMP3Libを使用しています(http://id3lib.sourceforge.net/) MP3を編集すると、時にはうまく動作しないことがあります。それから、ファイルを書き換えることができないという例外があります。ファイルは使用されていません。私は、問題は、私はライブラリを介してID3v2タグを設定し、MP3はおそらくID3v1ヘッダーだけであると思いますか? これまで誰かに問題があったのですか?新しいID3タグを使用してMP3を保存できない問題

EDIT: 問題はアルバムの画像を保存しようとするたびに発生しました。

string filepath = Application.StartupPath + @"\temp.jpg"; 
if(File.Exists(filepath)) 
    File.Delete(filepath); 

FileStream fs = File.Create(filepath); 
id3AlbumImage.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); 
fs.Close(); 

using (FileStream stream = File.Open(filepath, FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    byte[] buffer = new Byte[stream.Length]; 
    stream.Read(buffer, 0, buffer.Length); 
    if (buffer != null) 
    { 
     MemoryStream memoryStream = new MemoryStream(buffer, false); 
     _mp3File.TagHandler.Picture = Image.FromStream(memoryStream); 
    } 
} 

エラーは言う: System.IO.IOException:ファイルを交換することを移動するファイルで上書きすることができませんでした。置き換えられるファイルは元の名前を保持しています。

bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    bei System.IO.__Error.WinIOError() 
    bei System.IO.File.Replace(String sourceFileName, String destinationFileName, String destinationBackupFileName, Boolean ignoreMetadataErrors) 
    bei Com.Hertkorn.Helper.Filesystem.FileMover.FileMove(FileInfo sourceLocation, FileInfo targetLocation, FileInfo backupLocation) in E:\Projects\id3lib\Mp3Lib\Utils\FileMover.cs:Zeile 51. 
    bei Mp3Lib.Mp3File.RewriteFile(FileInfo bakFileInfo) in E:\Projects\id3lib\Mp3Lib\MP3\Mp3File.cs:Zeile 346. 
    bei Mp3Lib.Mp3File.Update() in E:\Projects\id3lib\Mp3Lib\MP3\Mp3File.cs:Zeile 231. 

答えて

0

実際の問題はNTFSです。 ID3タグを書き直すと、MP3自体が開きます。このオープニングプロセスで時にはエラーが発生するようです。言われたように、それはちょうど「時々」起こる。 今、私は本当に汚い解決策を実行し、その周りに試してキャッチした、そのエラーの場合は、私は同じをやり直す。面白いことは、これまでこれが動作しているということです。 私は、たとえその汚れたものであっても、この答えを解決策としてマークします。誰かがもっと良い方法や解決方法を知っているなら、私たちに知らせてください!

関連する問題