第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第15章 文件处理技术 变量和数组只能临时存储数据,且数据量很小, 当应用程序终止,数据就会丢失。如果需要将数 据长期存储或者存储大量数据,就需要用到文件。 文件维护的数据通常称为持久数据,存储在计算 机的辅助存储设备中,如磁盘、光盘等。许多程 序都要与外部数据进行交互,如数据库、XML,甚 至文本文件,因此文件操作是软件开发中必不可.
計算機程式語言實習課.
File Access 井民全製作.
Ch08 基本輸出入與檔案處理 物件導向系統實務.
第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入.
BLANK overview.
第十四章 I/O與資料流處理.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
Java 的例外與輸入出檔案處理 Jing Ming Huang.
Chapter 8 檔案.
第12章 伺服器的檔案處理 12-1 System.IO類別的基礎 12-2 檔案與資料夾操作 12-3 文字檔案的寫入
第14章 建立網路應用程式 14-1 瀏覽器的建立 14-2 檔案下載器 14-3 寄送電子郵件 14-4 檢查POP 3的電子郵件.
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
JAVA 程式設計與資料結構 第六章 輸出與輸入.
第十三章 文件和注册表操作.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
第15章 ADO.NET的資料庫存取 15-1 ADO.NET的基礎 15-2 建立SQL Server資料庫連接
Java程式概觀.
1. 檔案File  開新New  檔案Empty File (再另存新檔D:\hello.c)
王豐緒 銘傳大學資訊工程學系 問題:JAVA 二元檔輸出入.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
安裝JDK 安裝Eclipse Eclipse 中文化
自由軟體介紹(一) 把flash通通帶回家 報告人:陳俊銘.
文件流. 文件流 文件流 Stream FileStream BufferedStream MemoryStream NetworkStream …… 所有流的抽象 Stream FileStream BufferedStream MemoryStream NetworkStream ……
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
Quiz6 繳交期限: 12/14(四) 23:59前.
|13 檔案資料讀寫.
Ch10 字元與字串 物件導向程式設計(II).
第4章 視窗應用程式的基本輸出入.
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
Java 程式設計 講師:FrankLin.
第 十二 章 C# 中的文件处理.
第10章 檔案與資料夾處理 10-1 檔案的基礎 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫 10-4 檔案與資料夾處理.
網頁切換移轉 JS vs. ASP.NET.
電腦攻擊與防禦 使用電腦教室VMware軟體說明.
第一單元 建立java 程式.
VS.NET 2003 IDE.
PLC-GPPW軟體使用教學 授課教師:張祖烈
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
雲端計算.
資料來源 2 網路過濾軟體之安裝說明 資料來源 2.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
期末考.
個人網路空間 資訊教育.
VS.NET 2003 IDE.
GridView.
引用檔案.
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
利用 EditorConfig 自訂文字編輯器設定
挑戰C++程式語言 ──第7章 輸入與輸出.
MiRanda Java Interface v1.0的使用方法
陣列與結構.
第10章 檔案系統 (file system).
程式移植.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
若要查看更多祕訣、影片、說明和訓練,請瀏覽 aka.ms/officetips
openFileDialog1.ShowDialog() 對話匣
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Chapter 4 Multi-Threads (多執行緒).
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
InputStreamReader Console Scanner
Presentation transcript:

第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫 13-4 二進位檔案的處理 13-5 檔案與資料夾瀏覽對話方塊

13-1 System.IO類別的基礎-說明 .NET Framework的檔案與資料夾處理屬於System.IO名稱空間,在C#應用程式只需匯入此名稱空間,就可以存取檔案系統,或是處理文字或二進位檔案的「串流」(Streams)。

13-1 System.IO類別的基礎-類別 System.IO名稱空間檔案和資料夾處理類別,如下表所示:

13-1 System.IO類別的基礎- 匯入System.IO命名空間 System.IO命名空間的類別屬於.NET Framework類別函數庫的類別架構(關於.NET Framework的詳細說明,請參閱附錄B),在VS Express for Desktop是在模組或類別檔的開頭,使用Imports關鍵字匯入命名空間,如下所示: Imports System.IO

13-2 檔案與資料夾操作 13-2-1 顯示資料夾與檔案清單 13-2-2 顯示檔案資訊 13-2-3 檔案處理

13-2-1 顯示資料夾與檔案清單-說明 檔案與資料夾操作在System.IO名稱空間主要是使用Directory、DirectoryInfo、File和FileInfo類別,可以執行檔案相關操作和顯示資料夾清單。 在System.IO名稱空間Directory類別的方法可以取得目前工作目錄、建立、刪除和檢查資料夾是否存在,DirectoryInfo類別可以取得指定資料夾和檔案清單。

13-2-1 顯示資料夾與檔案清單- Directory類別方法(說明) CreateDirectory(String) 建立參數String路徑字串的資料夾 Exists(String) 檢查參數String路徑字串的資料夾是否存在,存在傳回True;否則為False Delete(String) 刪除參數String路徑字串的資料夾 Delete(String, True) 刪除參數String路徑字串的資料夾,第2個參數表示是否刪除其子資料夾,True是刪除 GetCurrentDirectory() 取得目前的工作路徑,傳回此路徑的字串 SetCurrentDirectory(String) 指定參數String路徑字串成為目前工作路徑

13-2-1 顯示資料夾與檔案清單- Directory類別方法(範例) Directory類別的GetCurrentDirectory()類別方法可以取得目前路徑,如下所示: txtDir.Text = formatDir(Directory.GetCurrentDirectory())

13-2-1 顯示資料夾與檔案清單- 顯示資料夾清單 DirectoryInfo物件可以取得指定資料夾的清單,我們需要使用建構子來建立此物件,其參數是路徑字串,如下所示: Dim dirInfo As DirectoryInfo = New DirectoryInfo(path) Dim subDirs() As DirectoryInfo = dirInfo.GetDirectories() For index = 0 To UBound(subDirs) lstDirs.Items.Add(subDirs(index).Name) Next 上述程式碼使用GetDirectories()方法取得資料夾清單的DirectoryInfo物件陣列後,使用For/Next迴圈新增資料夾名稱,使用的是Name屬性。

13-2-1 顯示資料夾與檔案清單- 顯示檔案清單 DirectoryInfo物件的GetFiles()方法可以取得FileInfo檔案物件陣列,如下所示: Dim subFiles() As FileInfo = dirInfo.GetFiles() For Each subFile In subFiles lstFiles.Items.Add(subFile.Name) Next 上述程式碼取得FileInfo檔案物件陣列後,使用For Each迴圈取得每一個FileInfo物件的Name屬性來新增檔案名稱。

13-2-1 顯示資料夾與檔案清單- Visual Basic專案 Visual Basic專案:Ch13-2-1 在Windows應用程式建立簡單的檔案和資料夾瀏覽工具,可以顯示指定路徑下的檔案和資料夾清單,並且提供按鈕來建立和刪除資料夾,如下圖所示:

13-2-2 顯示檔案資訊-說明 FileInfo類別的屬性可以取得檔案資訊,我們只需建立FileInfo檔案物件fInfo,就可以取得檔案資訊,如下所示: Dim fInfo As FileInfo = New FileInfo(txtFile.Text) 上述程式碼的建構子參數是檔案實際路徑,在建立好物件後,就可以使用FileInfo物件屬性取得檔案資訊。

13-2-2 顯示檔案資訊-屬性 FileInfo物件屬性取得的檔案資訊,如下表所示:

13-2-2 顯示檔案資訊-Visual Basic專案 Visual Basic專案:Ch13-2-2 在Windows應用程式輸入檔案的完整路徑後,可以顯示FileInfo物件屬性的檔案資訊,如下圖所示:

13-2-3 檔案處理-檔案處理方法 FileInfo物件關於檔案處理的方法,如下表所示: 方法 說明 CreateText() 建立文字檔案 Delete() 刪除檔案 MoveTo(String) 移動檔案至參數String字串的完整檔案路徑,檔案名稱可以不同 CopyTo(String, True) 複製檔案到參數String字串的完整檔案路徑,第2個參數為True,表示覆寫存在檔案;False為不覆寫

13-2-3 檔案處理-檔案處理屬性 FileInfo物件關於檔案處理的屬性,如下表所示: 上表Exists屬性可以檢查檔案是否存在,如下所示: If fileInfo.Exists Then …… End If 上述If條件使用Exists屬性檢查檔案是否存在,如果檔案存在傳回True;否則為False。

13-2-3 檔案處理-使用File類別方法 File類別提供相關類別方法,一樣可以執行檔案刪除、移動、複製和檢查檔案是否存在的操作,如下所示: File.Delete(path) File.Move(sourPath, destPath) File.Copy(sourPath, destPath, True) File.Exists(path) 上述程式碼是使用File類別的類別方法,參數path、sourPath和destPath是實際路徑(包括檔案全名),如果擁有2個參數分別為來源和目的的檔案路徑,True表示覆寫檔案。

13-3 文字檔案的讀寫 13-3-1 文字檔案的讀寫步驟 13-3-2 文字檔案的寫入 13-3-3 文字檔案的讀取

13-3-1 文字檔案的讀寫步驟-說明 在System.IO名稱空間的StreamReader和StreamWriter串流類別是使用「串流」(Stream)模型來處理資料的輸入與輸出。 串流(Stream)觀念最早是使用在Unix作業系統,串流模型如同水管中的水流,當程式開啟檔案來源的輸入串流後,Visual Basic應用程式就可以從輸入串流依序讀取資料,如下圖所示:

13-3-1 文字檔案的讀寫步驟- 步驟一:開啟或建立文字檔案 FileInfo類別的CreateText()方法可以建立全新文字檔案,如下所示: StreamWriter sw = fileInfo.CreateText() 使用StreamReader或StreamWriter開啟存在的文字檔案,如下所示: StreamReader sr = new StreamReader(path) StreamWriter sw = new StreamWriter(path) 新增文字內容請使用FileInfo類別的AppendText()方法來開啟StreamWrite串流,如下所示: StreamWriter sw = fileInfo.AppendText()

13-3-1 文字檔案的讀寫步驟- 步驟二:讀寫文字檔案串流(寫入) 在建立StreamReader和StreamWriter串流物件後,就可以使用相關方法來執行文字檔案的讀寫。StreamWriter類別寫入文字檔案的相關方法,如下表所示:

13-3-1 文字檔案的讀寫步驟- 步驟二:讀寫文字檔案串流(讀取) StreamReader類別讀取文字檔案內容的相關方法,如下表所示:

13-3-1 文字檔案的讀寫步驟- 步驟三:關閉文字檔案串流 在處理完文字檔案讀寫後,請記得將緩衝區資料寫入和關閉檔案串流,如下所示: sw.Flush() sw.Close() 上述程式碼的Close()方法可以關閉StreamWriter或StreamReader串流物件。StreamWriter串流物件需要額外使用Flush()方法清除緩衝區資料,也就是強迫將資料寫入檔案。

13-3-2 文字檔案的寫入- 寫入資料到文字檔 StreamWriter串流物件可以使用Write()或WriteLine()方法,將字串內容寫入文字檔案。Write()方法的參數是寫入的字串,但不含換行符號;WriteLine()方法可以寫入含換行符號的字串,如下所示: Dim sw As StreamWriter = fileInfo.CreateText() sw.Write(txtLine.Text & vbNewLine) 然後使用StreamWrite串流物件開啟檔案來寫入資料,如下所示: Dim sw As StreamWriter = New StreamWriter(path) sw.WriteLine(txtLine.Text)

13-3-2 文字檔案的寫入- 新增文字到文字檔案 當我們準備將資料新增到目前存在檔案的檔尾,可以使用FileInfo物件的AppendText()方法開啟文字檔案,如下所示: Dim sw As StreamWriter = fileInfo.AppendText() sw.Write(txtLine.Text & vbNewLine) 上述程式碼使用Write()或WriteLine()方法寫入的資料,就是新增至檔尾。

13-3-2 文字檔案的寫入- Visual Basic專案 Visual Basic專案:Ch13-3-2 在Windows應用程式將文字方塊控制項輸入的字串寫入檔案Books.txt或新增到檔案最後,然後可以使用記事本開啟檔案來檢視檔案內容,如下圖所示:

13-3-3 文字檔案的讀取-說明 System.IO命名空間的文字檔案讀取是使用StreamReader串流物件。在本節使用的範例文字檔案是第13-3-2節建立的文字檔案Books.txt,目前檔案內容共有5列文字,如下圖所示:

13-3-3 文字檔案的讀取- 讀取檔案的下一個字元(1) 文字檔案的讀取可以選擇一列一列讀取或一字一字讀取。首先我們以一字一字為單位來讀取檔案,請使用StreamReader串流物件開啟唯讀文字檔案,如下所示: Dim sr As StreamReader = New StreamReader(path) 目前檔案指標指向檔案開頭,接著使用Read()方法讀取目前檔案指標位置的下一個字元,如下所示: ch = sr.Read()

13-3-3 文字檔案的讀取- 讀取檔案的下一個字元(2) 當再次呼叫Read()方法時,就是從目前檔案指標位置開始,讀取下一個字元。換句話說,讀取多個字元可以使用For/Next迴圈配合Read()方法來讀取,如下所示: For i = 1 To count ch = sr.Read() txtOutput.Text &= ChrW(ch) & " " Next

13-3-3 文字檔案的讀取- 讀取文字檔的一整行 StreamReader串流物件提供方法可以一行一行讀取文字檔案內容,如下所示: str = sr.ReadLine() 上述ReadLine()方法能夠讀取整行文字內容,檔案指標一次移動一行,如下圖所示:

13-3-3 文字檔案的讀取- 讀取整個文字檔案(1) StreamReader串流物件提供方法可以讀取整個文字檔案內容,如下所示: str = sr.ReadToEnd() 上述ReadToEnd()方法能夠從目前檔案位置讀取到檔尾的全部內容。如果是剛開啟的檔案,就是讀取整個檔案的內容。

13-3-3 文字檔案的讀取- 讀取整個文字檔案(2) 我們可以使用ReadLine()方法配合Do/Loop While 迴圈來讀取整個文字檔案內容,如下所示: Do str = sr.ReadLine() count += 1 txtOutput.Text &= count & ": " & str & vbNewLine Loop While sr.Peek() <> -1

13-3-3 文字檔案的讀取- Visual Basic專案 Visual Basic專案:Ch13-3-3 在Windows應用程式讀取文字檔案的幾個字元、幾行或整個檔案內容,並且將它顯示在多行唯讀文字方塊,如下圖所示:

13-4 二進位檔案的處理-說明 System.IO名稱空間的類別是將檔案視為串流來處理,可以支援文字或二進位檔案的處理。在本節筆者準備使用FileStream、BinaryReader和BinaryWriter類別來處理二進位檔案的讀寫。

13-4 二進位檔案的處理-FileStream類別 Dim fs As FileStream = New FileStream(path, FileMode.OpenOrCreate) 建構子第1個參數是檔案實際路徑,第2個參數是開啟模式,如下表所示:

13-4 二進位檔案的處理-BinaryWriter類別 BinaryWrite類別可以使用二進位方式將基本型別的資料寫入串流,並且支援以特定編碼方式來寫入字串。在開啟二進位檔案FileStream串流物件後,我們就可以使用此類別建立BinaryWriter物件,以便將資料寫入二進位檔案,如下所示: Dim bw As BinaryWriter = New BinaryWriter(fs) BinaryWriter物件的相關方法如下表所示: 方法 說明 Write(Type) 將參數資料型別的資料寫入檔案串流,我們可以寫入各種基本資料型別的資料 Flush() 清除緩衝區,將資料寫入檔案串流 Close() 關閉串流

13-4 二進位檔案的處理-BinaryReader類別 在開啟FileStream串流物件後,可以建立BinaryReader物件讀取二進位檔案,如所示: Dim br As BinaryReader = New BinaryReader(fs) BinaryReader物件的相關方法如下表所示: 方法 說明 ReadBoolean() 從目前開啟的串流讀取布林Boolean資料型別的值 ReadByte() 從目前開啟的串流讀取位元組Byte資料型別的值 ReadChar() 從目前開啟的串流讀取字元Char資料型別的值 ReadDouble() 從目前開啟的串流讀取浮點Double資料型別的值 ReadInt32() 從目前開啟的串流讀取整數Integer資料型別的值 ReadString() 從目前開啟的串流讀取字串String資料型別的值 Close() 關閉串流

13-4 二進位檔案的處理-Visual Basic專案 Visual Basic專案:Ch13-4 在Windows應用程式建立視窗桌面的Post-It記事本,記事本顯示在最上層,在開啟時能夠自動使用二進位檔案方式讀取檔案內容,結束時存入檔案,如下圖所示:

13-5 檔案與資料夾瀏覽對話方塊-說明 在第10章已經說明過Visual Basic預設的字型與色彩對話方塊,在這一節筆者準備說明檔案與資料夾瀏覽的三種對話方塊,如下所示: OpenFileDialog控制項:選擇開啟檔案的控制項,它就是Windows作業系統的「開啟檔案」對話方塊。 SaveFileDialog控制項:選擇儲存檔案的控制項,它就是Windows作業系統的「儲存檔案」對話方塊。 FolderBrowserDialog控制項:讓使用者瀏覽、建立和選擇資料夾的控制項。

13-5 檔案與資料夾瀏覽對話方塊-建立 在「工具箱」箱視窗的【對話方塊】區段,按二下【OpenFileDialog】、【SaveFileDialog】和【FolderBrowserDialog】控制項,就可以在元件匣新增這3個控制項 。

13-5 檔案與資料夾瀏覽對話方塊-屬性1 OpenFileDialog和SaveFileDialog控制項的常用屬性,如下表所示:

13-5 檔案與資料夾瀏覽對話方塊-屬性2 FolderBrowserDialog控制項的常用屬性說明,如下表所示: 屬性 說明 Name 控制項名稱 RootFolder 取得或設定開始瀏覽的根資料夾 SelectedPath 取得或設定使用者選取的路徑 Description 取得或設定對話方塊上方的描述文字

13-5 檔案與資料夾瀏覽對話方塊-選取檔案 使用者在選好檔案後,傳回DialogResult.OK,程式碼可以使用FileName屬性取得使用者選取檔案的完整路徑,如下所示: If ofdOpen.ShowDialog() = DialogResult.OK Then …… Me.Text = "Ch13-5 - " & ofdOpen.FileName End If

13-5 檔案與資料夾瀏覽對話方塊- Visual Basic專案 Visual Basic專案:Ch13-5 此Windows應用程式是擴充自Ch11-3的Visual Basic專案的記事本,在功能表列新增開啟、儲存和指定工作目錄的檔案功能,使用的是OpenFileDialog、SaveFileDialog和FolderBrowserDialog控制項 ,如下圖所示:

End