2012-03-16 2 views
0

기존의 mp3에 taglib # 태그를 추가하고 싶습니다. 다음과 같은 오류 메시지가 있습니다 : "프로세스가 다른 프로세스에서 사용 중이므로 파일에 액세스 할 수 없습니다." 나는 그것이 어떤 종류의 과정 일 수 있는지 모른다. 내 하드 드라이브의 모든 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-of-file-handles-by-process-in-c 도움 말을 사용 하시겠습니까? 쓰기 권한이있는 스트림을 열지 않는 한? 사용되지 않은 MP3가 사용되는 것은 이상합니다. – Jason

+1

'f.OpenFile()'은 결코'null'을 반환하지 않습니다. – SLaks

+0

왜 '취소'를 클릭하면 '문제가 발생 했습니까?'라는 메시지가 나타납니다. – SLaks

답변

2

f.OpenFile()은 파일 주위에 FileStream을 만듭니다.
이 스트림을 절대로 닫지 않으므로 파일이 열린 상태로 유지됩니다.

하지 마십시오.