C 實現檔案分割合併器 3

2021-09-06 01:55:28 字數 3653 閱讀 1887

四.visual c#實現合併檔案的解決方法及其具體實現步驟:

visual c#實現合併檔案的思路是首先獲得要合併檔案所在的目錄,然後確定所在目錄的檔案數目,最後通過迴圈按此目錄檔名稱的順序讀取檔案,形成資料流,並使用binarywriter在不斷追加,迴圈結束即合併檔案完成。具體的實現方法請參考下面步驟中的第步。以下就是visual c#實現合併檔案的具體實現步驟:

1. 啟動visual studio .net。

2. 選擇選單【檔案】|【新建】|【專案】後,彈出【新建專案】對話方塊。

3. 將【專案型別】設定為【visual c#專案】。

4. 將【模板】設定為【windows應用程式】。

5. 在【名稱】文字框中輸入【合併程式】。

6. 在【位置】的文字框中輸入【e:\vs.net專案】,然後單擊【確定】按鈕,這樣在"e:\vs.net專案"目錄中就產生了名稱為"合併程式"的資料夾,並在裡面建立了名稱為"合併程式"的專案檔案。具體如圖04所示:

圖04:【合併程式】專案之【新建專案】對話方塊

7. 把visual studio .net的當前視窗切換到【form1.cs(設計)】視窗,並從【工具箱】中的【windows窗體元件】選項卡中往form1窗體中拖入下列元件,並執行相應的操作:

乙個openfiledialog元件,用於選擇乙個合併檔案。

乙個progressbar元件,用以顯示檔案合併的進度。

二個textbox元件,分別用以顯示openfiledialog元件選擇後的檔案和輸入合併後的大檔案的名稱。

二個label元件。

二個button元件,分別用以選擇乙個合併檔案和對選定目錄中的所有檔案進行合併,並在這二個button元件拖入form1的設計窗體後,雙擊它們,則系統會在form1.cs檔案分別產生這二個元件的click事件對應的處理**。

13. 把visual studio .net的當前視窗切換到【form1.cs(設計)】視窗,並按照表06所示數值來調整元件的主要屬性:

元件型別

元件名稱

屬性設定結果

button

button1

flatstyle

flat

button1

text

執行button2

flatstyle

popup

button2

text

...form

form1

text

合併程式

form1

maximizebox

false

form1

minimizebox

true

form1

formborderstyle

formborderstyle.fixedsingle

label

label1

text

請選擇大小:

label2

text

選擇檔案:

textbox

textbox1

text

textbox2

text

表06:【檔案分割】專案中主要元件屬性設定數值表

至此【合併程式】專案的介面設計和功能實現的準備工作就完成了,設計後的介面如圖05所示:

圖05:【合併程式】專案的設計後的介面

8. 在【解決方案資源管理器】視窗中,雙擊form1.cs檔案,進入form1.cs檔案的編輯介面。並在form1.cs檔案的開頭,用下列匯入命名空間**替代系統預設的匯入命名空間**。

using system ;

using system.drawing ;

using system.collections ;

using system.componentmodel ;

using system.windows.forms ;

using system.data ;

using system.io ;

using system.text ;

using system.data.oledb ;

9. 在from1.cs的class**區新增下列**,下列**是定義乙個字串全域性變數,用以存放合併檔案所在目錄:

public string sdirectoryname = "" ;

//定義乙個全域性變數,用以存放合併檔案所在的目錄

10. 用下列**替換form1.cs中的button2的click事件對應的處理**,下列**功能是根據檔案選擇對話方塊獲得檔案所在的目錄,為後面的檔案合併做準備:

private void button2_click ( object sender , system.eventargs e )

string[ ] path = openfiledialog1.filename .split ( @"\".tochararray ( ) ) ;

string stemp = "" ;

int i= 0 ;

for ( i= 0 ; i < path.length - 1 ; i++ )

button1.enabled = true ;

sdirectoryname= stemp ;

//獲得檔案所在目錄}

11. 用下列**替換form1.cs中的button1的click事件對應的處理**,下列**功能是合併獲得的檔案所在目錄裡面的所有檔案,並生成合併檔案:

private void button1_click ( object sender , system.eventargs e )

addwriter.close ( ) ;

//關閉binarywriter檔案書寫器

addstream.close ( ) ;

//關閉filestream檔案流

messagebox.show ( "成功合併!" ) ;

progressbar1.value = 0 ;}

12. 至此在上述步驟都正確完成後,【合併程式】專案的全部工作就基本完成了。此時單擊快捷鍵f5執行程式,單擊【…】按鈕選擇分割後檔案所在目錄的任一檔案,再輸入合併後檔案的名稱後,單擊【執行】按鈕,則程式就能夠把合併選擇目錄中的所有檔案,並查殺輸入的合併檔案。圖06是【合併程式】專案的執行介面:

圖06:【合併程式】專案的執行介面

五.總結:

visual c#之所以擁有很強的檔案處理能力是因為在.net framework sdk中提供了許多處理檔案的類。實現分割大檔案程式和合併小檔案程式應該是檔案程式設計中比較複雜的應用了,但通過本文的介紹,可見主要使用的是filestream、binaryreader和binarywriter三個類就基本完成了,並且**量也不是很多。其實掌握visual c#對檔案的處理,這三個類是關鍵,也是重點和難點,因為其他處理檔案的類要麼和這三個類的用法相似,要麼結構簡單,容易掌握。最後希望本文能夠對您掌握visual c#,精通visual c#的檔案程式設計有所幫助。

實現檔案的分割和合併

讀取需要被分割的檔案,將該檔案以n份讀取到不同的臨時檔案中。int index 1 每個讀取100kb int len 1 byte buf newbyte 1024 100 while len fis.read buf 1 fis.close 封裝被分割檔案的目錄,過濾掉不需要的檔案得到所有被分割...

檔案分割合併功能

檔案分割合併功能public partial class form1 form 選擇檔案 事件 private void btn selfile click object sender,eventargs e 選擇目錄 事件 private void btn seldir click object ...

Python分割合併檔案

import os class fileoperationbase object def init self,oldpath,newpath,chunksize 1024 self.chunksize chunksize 分割後每個檔案的大小 self.oldpath oldpath 待處理檔案路徑...