2013-05-23 2 views
0

내 응용 프로그램은 디렉토리를 만들고 ZIP 파일에서 파일을 넣은 다음 ZIP 파일을 제거 할 수 있습니다. 그런 다음 해당 파일을 삭제하려고하면 아무 작업도 수행되지 않았지만 액세스 거부 오류가 발생합니다. 그것은 지금 지저분한 보이는방금 ​​만든 파일을 삭제할 수 없습니다

File.WriteAllBytes(OpslagLocatieDocumenten + myTicketNummer.ToString + "\documenten.zip", op.Documenten) 
    Using zp As New ZipFile(OpslagLocatieDocumenten + myTicketNummer.ToString + "\documenten.zip") 
    zp.FlattenFoldersOnExtract = True 
    zp.ExtractAll(OpslagLocatieDocumenten + myTicketNummer.ToString, ExtractExistingFileAction.OverwriteSilently) 
    zp.Dispose() 
    End Using 

    Try 
    For Each itm As String In Directory.GetFiles(OpslagLocatieDocumenten + myTicketNummer.ToString) 
     Try 
     File.Delete(itm) 
     Catch ex As Exception 

     End Try 
    Next 

    Catch ex As Exception 
    End Try 

,하지만 테스트 목적이다 다음은 코드입니다. for-next 부분에서는 ZIP에서 파일을 작성한 직후 파일을 삭제하려고 시도합니다. 현재 디렉토리에는 두 개의 파일이 있습니다. 하나는 ZIP이고 다른 하나는 PDF 문서입니다. itm의 첫 번째 파일은 PDF이며 ACCESS DENIED 오류가 있습니다. itm의 두 번째 파일은 삭제 된 ZIP입니다. PDF의 크기는 311kb입니다. Windows 탐색기를 통해 여전히 문제가없는 애플리케이션을 삭제할 수 있습니다.

내 파일이 잠겨있는 이유는 무엇입니까? 이 자물쇠를 바이 패스하거나 제거하려면 어떻게해야합니까?

RG,

에릭

+0

왜 Using Block을 사용하여 zip을 호출할까요? – user1937198

답변

3

문제를 발견.

ZIP에 추가 된 파일의 속성은 읽기 전용으로 설정되어 있습니다. 그래서 응용 프로그램이 파일을 쓸 때 windows는 응용 프로그램이 파일을 삭제할 수 없게합니다.

Windows는 불행히도 파일이 읽기 전용이라는 메시지없이 Windows 탐색기를 통해 파일을 삭제할 수 있습니다.

0

File.Kill(fileLocation) 방법을 사용해 보셨습니까?

관련 문제