본문 바로가기

[Fix] C# NUnrar - 프로세스에서 사용 중이므로 프로세스에서 액세스할 수 없습니다.

반응형

심심해서 C#으로 NUnrar 을 다루다가 열린 RAR파일을 수정 삭제가 불가능 해지는 문제를 발견했습니다.

 

 

 

문제

 

NUnrar으로 RarArchive.Open("경로") 를 사용하여 파일을 여는 경우

다른 프로세스에서 사용중이라 나오고

System.IO 을 이용한 Move 등 파일을 수정하려 하면 에러가 발생

 

해결

 

스트림이 열려 닫히지 않는다는 점이 걸려

Open의 오버로드 함수들을 확인하여 해결

 

RarArchive archive = RarArchive.Open(fileName);

// 위의 string 으로 경로를 주는 방식이 아닌
// 아래의 FileStream 을 이용

FileStream fs = new FileStream(fileName, FileMode.Open);
RarArchive archive = RarArchive.Open(fs);

...

fs.Close();

 

RarArchive.Open을 사용할 시 string을 이용하지 않고 FileStream을 통해 열어주고

파일의 사용이 끝났다면 FileStream을 직접 Close로 닫아주면 해결됩니다.

 

 

즐코딩

반응형