2013-02-12 1 views
1

, 나는이 코드를 가지고 :덮어 쓰기 항목이 나는 데 문제

DirectoryInfo di = new DirectoryInfo(dir); 
FileInfo[] rgFiles = di.GetFiles(); 
DirectoryInfo[] d = di.GetDirectories(); 
if(rgFiles != null && d != null) { 
foreach (FileInfo fi in rgFiles) 
{ 
    foreach (DirectoryInfo dii in d) 
    { 
     using (ZipFile zip = ZipFile.Read(locateZipFile())) 
     { 

      zip.AddFile(fi.FullName, ""); 

      zip.AddDirectory(dii.FullName,dii.Name); 
      toolStripStatusLabel1.Text = "Inserting " + fi.Name; 
      toolStripStatusLabel1.Text = "Inserting " + dii.Name + " and all of it's contents"; 

      MessageBox.Show("Inserted the file " + fi.Name); 
      MessageBox.Show("Inserted the folder " + dii.Name + " and all contents in it."); 
      zip.Save(); 

     } 
    } 
} 

모든 것이 잘 작동을하지만 우편에 동일라는 파일을 추가하려고하고있을 때, 그것을 그것을 덮어 쓰지 않습니다. 나는 그것을 원합니다. 어떻게 할 수 있는지에 대한 아이디어가 있습니까? 감사. 라인

zip.AddFile(fi.FullName, ""); 

이름이 이미 항목에 존재하는 경우 테스트해야하기 전에

답변

2

. 예인 경우 제거한 다음 다시 삽입하십시오.

+1

감사합니다. 하지만 이것은 디렉토리에서 작동하지 않습니까? 디렉토리라면 어떻게 될까요? – user1568364

+0

GetDirectoryName 메서드를 사용할 수 있습니다 : Path.GetDirectoryName (fi.FullName); (이것을 응답으로 표시하는 것을 잊지 마십시오!)) –

1

UpdateFile 방법을 사용할 수 있습니다. 파일이 이미 압축 아카이브에있는 경우

zip.UpdateFile(fi.FullName, ""); 

이 메소드는,이 방법은 우편 아카이브에서 그 주어진 파일 이름의 내용을 업데이트, 우편 아카이브에 파일을 추가하거나. UpdateFile 메소드는 "AddOrUpdateFile"이라고 할 수 있습니다.

성공하면 응용 프로그램에서 파일이 추가되었는지 또는 업데이트되었는지 여부를 알 수있는 방법이 없습니다.

+0

내가 링크 된 문서 사이트는 사라진 것처럼 보입니다. 대체물을 찾을 수없는 것 같습니다. – Deantwo