2013-02-18 59 views
1

我目前正在一個小項目中,我必須定義需要壓縮成一個zip文件的幾個路徑。使用SevenZipSharp代碼排除文件

現在出現以下情況:其中一個路徑是一個目錄,它應該被遞歸壓縮(包括它包含的所有文件和子文件夾)。在我壓縮之前,我檢查了一些東西,包括權限。 如果當前要壓縮的用戶沒有文件或文件夾的權限,則應排除該用戶。

現在我怎麼能排除幾個文件和目錄壓縮在遞歸模式?

我已經嘗試過這樣的事情,但爭論似乎只存在於cmd中。

compressor.CustomParameters.Add("-x", "@C:\\Users\\******\\Desktop\\exclude.txt"); 

回答

1

我沒有發現SevenZipSharp排除文件的可能性。 相反,我現在用的DotNetZip它有一個很好的方法來刪除文件: ZipFile.RemoveEntry()ZipFile.RemoveEntries() 例如爲:

foreach (string removePath in Verifier.ExcludePaths) 
{ 
    try 
    { 
     // Remove files and directories to be excluded 
     zipFile.RemoveEntry(removePath); 
    } 
    catch (Exception) 
    { 
     Logger.Warn("Could not exclude path \"{0}\".",removePath); 
    } 
} 
0

我發現SevenZipSharp可以排除文件:

SevenZipCompressor sevenZipCompressor = new SevenZipCompressor(); 
sevenZipCompressor.ModifyArchive(archiveName, dictionary); 
// string archiveName: archive name 
// Dictionary<int Index, string NewFileName>: NewFileName or Null value to delete the corresponding index. 
相關問題