2016-06-16 88 views
1

因此,我試圖調和這一概念時遇到了問題,因爲我所做的每一項更改似乎都無法解決問題。將多個文件壓縮到一個文件夾

我多textbox並可以輸入用逗號分隔的多個值,下面是詳細信息:

  1. 每個值代表一個文件夾
  2. 而且每個文件夾中有多個文件/其他文件夾中的
  3. 所有這些值在一個主目錄(讓我們稱之爲文件夾路徑)

例如說我在我的文本框中輸入「65635,65636」每個那些代表目錄的文件夾,即「\ FOLDERPATH \ 65635」「\ FOLDERPATH \ 65636」,我試圖通過把拉鍊這些整個文件夾DotNetZiplib,我知道如何做到這一點,如果我專門引用一個文件夾,但有什麼地方循環通過文本框來獲取文件夾的名稱並將文件添加到一個壓縮文件夾?

Using zip As New ZipFile = new ZipFile 
Dim files() As String = Directory.GetFiles(folderpath & textboxvalue) 
For each textboxvalue in directory.getfiles 
    zip.Addfile(textboxvalue) 

zipfile函數我知道循環這些,而不是假設它是一個大文件。

+0

@ jean55是的,我檢查zagglers作爲完整的,因爲它的工作謝謝!但我誤解了我的老闆,他說我可以使用第三方庫,他希望我循環所有,我可以做到這一點,如果它的單一基於您的答案(我的部分代碼在問題不起作用,返回重複不知道爲什麼),我不知道如何,你會有關於dotnetziplib的任何信息?並檢查答案是否正確?還是我必須做別的事情?對不起,我仍然處於評論之中。 – jean55

+0

請[**查看此鏈接**](http://stackoverflow.com/help/someone-answers)瞭解有關接受和投票的答案。這[** link **](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)也很有用。 – Codexer

+0

@Zaggler再次感謝你的所有幫助和鏈接:)我對每個問題都瞭解更多關於VB的知識! – jean55

回答

1

您必須首先拆分數組中的文本框值才能得到以逗號分隔的數字。接下來,您需要將文件夾與此分離的文本值組合起來,從而正確創建路徑。

如果是,則檢查系統中是否存在文件夾,然後從目錄中獲取所有文件並對每個文件名進行壓縮。

事情是這樣的:

Using zip As New ZipFile("your zip filename") 
For Each str As String In textboxvalue.Split(",") 
    Dim path as String = System.IO.Path.Combine(folderpath, str) 
    If System.IO.Directory.Exists(path) = False Then 
     Continue For 
    End If 

    Dim files() As String = Directory.GetFiles(path) 

    For Each fileName As String In files 
     zip.Addfile(fileName) 
    Next 
Next 
End Using 
+1

你能解釋一下***爲什麼OP解決方案***不工作。這篇文章沒有解釋爲什麼OP邏輯不工作。發佈解決方案是一回事,解釋問題以及如何解決問題是一個更好的解決方案,可幫助OP瞭解問題以及如何解決問題。 – Codexer

+0

是的,你是對的! – pedrofernandes

+0

謝謝,這是更有益的。 – Codexer

相關問題