第06章目錄與文件管理_第1頁(yè)
第06章目錄與文件管理_第2頁(yè)
第06章目錄與文件管理_第3頁(yè)
第06章目錄與文件管理_第4頁(yè)
第06章目錄與文件管理_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第06章目錄與文件管理

本章主要內(nèi)容:目錄的創(chuàng)建、移動(dòng)和刪除FolderBrowserDialog控件文件的創(chuàng)建、移動(dòng)、復(fù)制和刪除Open控件和Save控件對(duì)文件的讀寫等操作

第06章目錄與文件管理6.1目錄管理

在命名空間下,有兩個(gè)類對(duì)磁盤和目錄進(jìn)行操作管理:Directory類DirectoryInfo類相同點(diǎn):

均能對(duì)目錄進(jìn)行操作區(qū)別:

前者必須被實(shí)例化后才能使用,而后者則只提供了靜態(tài)的方法。如果多次使用某個(gè)對(duì)象一般使用前者;如果僅執(zhí)行某一個(gè)操作則使用后者提供的靜態(tài)方法效率更高一些。

第06章目錄與文件管理6.1目錄管理(續(xù))類的構(gòu)造函數(shù)形式:

publicDirectoryInfo(stringpath);path表示目錄所在的路徑,注意使用的路經(jīng)不能包含空格等非法字符。如果希望使用特殊路徑,像“我的文檔”文件夾、“開始”菜單文件夾、“桌面”文件夾等,可以用下的枚舉,例如,得到“我的文檔”文件夾的方法為:System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)第06章目錄與文件管理類的主要屬性:Attributes

獲取或設(shè)置當(dāng)前的。Exists獲取指示目錄是否存在的布爾值FullName獲取當(dāng)前路徑的完整目錄名第06章目錄與文件管理6.1目錄管理(續(xù))Parent

獲取指定子目錄的父目錄Root獲取根目錄

CreationTime獲取或設(shè)置當(dāng)前目錄創(chuàng)建時(shí)間LastAccessTime獲取或設(shè)置上一次訪問(wèn)當(dāng)前目錄的時(shí)間

LastWriteTime獲取或設(shè)置上一次寫入當(dāng)前目錄的時(shí)間第06章目錄與文件管理6.1目錄管理(續(xù))類提供的靜態(tài)方法CreateDirectory創(chuàng)建指定路徑中的所有目錄。Delete刪除指定的目錄。Exists確定給定路徑是否引用磁盤上的現(xiàn)有目錄GetCreationTime獲取目錄的創(chuàng)建日期和時(shí)間GetCurrentDirectory獲取應(yīng)用程序的當(dāng)前工作目錄GetDirectories獲取指定目錄中子目錄的名稱。GetFiles返回指定目錄中的文件的名稱。Get

返回指定目錄中所有文件和子目錄的名稱。GetLastAccessTime

返回上次訪問(wèn)指定文件或目錄的日期和時(shí)間第06章目錄與文件管理6.1目錄管理(續(xù))GetLastWriteTime

返回上次寫入指定文件或目錄的日期和時(shí)間GetParent

檢索指定路徑的父目錄,包括絕對(duì)路徑和相對(duì)路徑Move將文件或目錄及其內(nèi)容移到新位置SetCurrentDirectory

將應(yīng)用程序的當(dāng)前工作目錄設(shè)置為指定的目錄SetLastAccessTime

設(shè)置上次訪問(wèn)指定文件或目錄的日期和時(shí)間SetLastWriteTime設(shè)置上次寫入目錄的日期和時(shí)間第06章目錄與文件管理6.1.1目錄的創(chuàng)建、刪除與移動(dòng)1.目錄的創(chuàng)建

CreateDirectory方法(Directory類中)用于創(chuàng)建指定路徑中的所有目錄,方法原型:

publicstaticDirectoryInfoCreateDirectory(stringpath)

參數(shù):path為要?jiǎng)?chuàng)建的目錄路徑。

若指定的目錄不存在,則按path的指定創(chuàng)建所有目錄和子目錄。如:

Directory.CreateDirectory(“c:\\test”);Directory.CreateDirectory("c:\\test\\t1\\t2");第06章目錄與文件管理6.1.1目錄的創(chuàng)建、刪除與移動(dòng)(續(xù))2.目錄的刪除Delete方法(Directory類)用于刪除指定的目錄,該方法有兩種重載的形式:1)publicstaticvoidDelete(stringpath)path為要移除的空目錄的名稱。此目錄必須為可寫或?yàn)榭铡?)publicstaticvoidDelete(stringpath,boolrecursive)path為要移除的目錄的名稱,不區(qū)分大小寫;recursive是一個(gè)布爾值,若要移除path中的目錄、子目錄和文件,則為true;否則為false。第06章目錄與文件管理6.1.1目錄的創(chuàng)建、刪除與移動(dòng)(續(xù))例

創(chuàng)建并刪除指定的目錄usingSystem;usingSystem.IO;classTest{publicstaticvoidMain(){//指定要操作的目錄

stringpath=@"c:\MyDir";try{//確定目錄是否存在

if(Directory.Exists(path))第06章目錄與文件管理6.1.1目錄的創(chuàng)建、刪除與移動(dòng)(續(xù)){Console.WriteLine("目錄已存在");return;}//創(chuàng)建目錄

DirectoryInfodi=Directory.CreateDirectory(path);Console.WriteLine("成功創(chuàng)建目錄:{0}",Directory.GetCreationTime(path));//刪除目錄

di.Delete();Console.WriteLine("目錄已刪除");}catch(Exceptione){Console.WriteLine("程序異常:{0}",e.ToString());}}}第06章目錄與文件管理6.1.1目錄的創(chuàng)建、刪除與移動(dòng)(續(xù))3.目錄的移動(dòng)

Move方法(Directory類)能夠重命名或移動(dòng)目錄方法原型為:publicstaticvoidMove(stringsourceDirName,stringdestDirName)

sourceDirName為要移動(dòng)的文件或目錄的路徑;destDirName為指向sourceDirName的新位置的目標(biāo)路徑。允許sourceDirName和destDirName參數(shù)指定相對(duì)或絕對(duì)路徑信息。第06章目錄與文件管理6.1.2FolderBrowserDialog控件

功能:用于顯示用戶選擇文件夾的對(duì)話框。注意FolderBrowserDialog類在命名空間下,無(wú)法繼承該類。調(diào)用FolderBrowserDialog類的ShowDialog方法:可以打開對(duì)話框,提示用戶瀏覽、創(chuàng)建并最終選擇一個(gè)文件夾。只能選擇文件系統(tǒng)中的文件夾,不能選擇虛擬文件夾。只允許用戶選擇文件夾而非文件。文件夾的瀏覽通過(guò)樹控件完成。第06章目錄與文件管理6.1.2FolderBrowserDialog控件(續(xù))FolderBrowserDialog控件的主要屬性:Description獲取或設(shè)置對(duì)話框中在樹視圖控件上顯示的說(shuō)明文本。RootFolder獲取或設(shè)置從其開始瀏覽的根文件夾。SelectedPath獲取或設(shè)置用戶選定的路徑。Tag獲取或設(shè)置一個(gè)對(duì)象,該對(duì)象包含控件的數(shù)據(jù)。(從CommonDialog繼承)CanRaiseEvents獲取一個(gè)指示組件是否可以引發(fā)事件的值。(從Component繼承)第06章目錄與文件管理6.1.2FolderBrowserDialog控件(續(xù))FolderBrowserDialog控件的主要成員方法:Dispose釋放由Component占用的資源。

Reset將屬性重置為其默認(rèn)值。ShowDialog運(yùn)行通用對(duì)話框。Equals確定兩個(gè)Object實(shí)例是否相等(從Object繼承。)GetService返回一個(gè)對(duì)象,該對(duì)象表示由Component或它的Container提供的服務(wù)(從Component繼承)第06章目錄與文件管理6.1.2FolderBrowserDialog控件(續(xù))

一般在創(chuàng)建新的FolderBrowserDialog后,將RootFolder設(shè)置為開始瀏覽的位置?;?qū)electedPath設(shè)置為最初選定的RootFolder子文件夾的絕對(duì)路徑。也可以選擇設(shè)置Description屬性為用戶提供附加說(shuō)明。最后調(diào)用ShowDialog方法將對(duì)話框顯示給用戶。

FolderBrowserDialog是有模式對(duì)話框,在顯示時(shí),它會(huì)阻止應(yīng)用程序剩余部分的運(yùn)行,直到用戶選定了文件夾。第06章目錄與文件管理6.1.2FolderBrowserDialog控件(續(xù))例:?jiǎn)螕鬢indows窗體按鈕,打開FolderBrowserDialog對(duì)話框的使用示例。如圖:第06章目錄與文件管理6.1.2FolderBrowserDialog控件(續(xù))代碼:privatevoidbutton1_Click(objectsender,EventArgse){DialogResultresult=folderBrowserDialog1.ShowDialog();if(result==DialogResult.OK){textBox1.Text=folderBrowserDialog1.SelectedPath;}else{textBox1.Text="";}}第06章目錄與文件管理6.2文件管理File類和類為對(duì)象的創(chuàng)建和文件的創(chuàng)建、復(fù)制、移動(dòng)、刪除、打開等提供了支持。使用這兩個(gè)類對(duì)文件進(jìn)行操作時(shí)必須具備相應(yīng)的權(quán)限否則將產(chǎn)生異常。相同點(diǎn):都能完成對(duì)文件的操作。不同點(diǎn):類必須實(shí)例化,并且每個(gè)的實(shí)例必須對(duì)應(yīng)于系統(tǒng)中一個(gè)實(shí)際存在的文件。如果打算多次重用某個(gè)對(duì)象,可考慮使用的實(shí)例方法,而不是File類的相應(yīng)靜態(tài)方法。第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)1.文件復(fù)制

File類的Copy方法用于將現(xiàn)有文件復(fù)制到新文件。方法原型為:

publicstaticvoidCopy(stringsourcedest)參數(shù):source為要復(fù)制的文件,dest為目標(biāo)文件的名稱。它不能是一個(gè)目錄或現(xiàn)有文件。

第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))例:usingSystem;usingSystem.IO;classTest{publicstaticvoidMain(){stringpath=@"c:\temp\MyTest.txt";stringpath2=@"c:\temp\MyTest1.txt";try{(path2);(path,path2);Console.WriteLine("{0}復(fù)制到{1}",path,path2);第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))//再次復(fù)制相同的文件,操作失敗

(path,path2);Console.WriteLine("再次復(fù)制相同的文件,操作失敗");}catch(Exceptione){Console.WriteLine("不允許進(jìn)行二次復(fù)制");Console.WriteLine(e.ToString());}}}第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))2.文件刪除

File類的Delete方法用于刪除指定的文件。如果指定的文件不存在,則不引發(fā)異常。方法定義:

publicstaticvoidDelete(stringpath)

參數(shù):path為要?jiǎng)h除的文件的名稱。例:usingSystem;usingSystem.IO;class{publicstaticvoidMain(){第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))Console.WriteLine("確定要?jiǎng)h除指定目錄下的所有文件?");Console.WriteLine("點(diǎn)擊'Y'鍵繼續(xù),任意鍵取消");inta=Console.Read();if(a=='Y'||a=='y'){Console.WriteLine("正在刪除文件...");}else{第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))

Console.WriteLine("操作被取消");return;}DirectoryInfodir=newDirectoryInfo(@"C:\MyDir");foreach(findir.GetFiles()){f.Delete();}}}第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))3.文件移動(dòng)

File類的Move方法用于將指定文件移到新位置,并提供指定新文件名的選項(xiàng)。方法原型為:

publicstaticvoidMove(stringsource,stringdest)

參數(shù):source為要移動(dòng)的文件的名稱,dest為文件的新路徑。例:usingSystem;usingSystem.IO;classTest第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù)){publicstaticvoidMain(){stringpath=@"c:\temp\MyTest.txt";stringpath2=@"c:\temp2\MyTest.txt";try{if(!(path)){fs=(path);fs.Close();}if((path2)){ 第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))(path2);}//移動(dòng)文件

(path,path2);Console.WriteLine("文件由{0}移動(dòng)到{1}",path,path2);//判斷文件是否存在

if((path)){Console.WriteLine("源文件存在");}else{Console.WriteLine("源文件不存在");}第06章目錄與文件管理6.2.1文件復(fù)制、刪除與移動(dòng)(續(xù))}catch(Exceptione){Console.WriteLine("操作取消:{0}",e.ToString());}}}第06章目錄與文件管理6.2.2文件屬性與設(shè)置

自學(xué)第06章目錄與文件管理6.2.3Open控件

功能:用于顯示用戶打開文件的對(duì)話框。

Open類屬于命名空間,無(wú)法繼承該類。使用此類可檢查某個(gè)文件是否存在并打開該文件。ShowReadOnly屬性確定是否在對(duì)話框中顯示只讀復(fù)選框;ReadOnlyChecked屬性指示是否選中只讀復(fù)選框。第06章目錄與文件管理例:?jiǎn)螕鬢indows窗體按鈕,打開Open對(duì)話框。代碼:privatevoidbutton1_Click(objectsender,EventArgse){DialogResultresult=open();if(result==DialogResult.OK)textBox1.Text=open;elsetextBox1.Text="";}第06章目錄與文件管理6.2.3Open控件(續(xù))代碼:privatevoidbutton1_Click(objectsender,EventArgse){DialogResultresult=open();if(result==DialogResult.OK){textBox1.Text=open;}else{textBox1.Text="";}}第06章目錄與文件管理6.2.4Save控件Save控件用于顯示用戶保存文件的對(duì)話框,提示用戶選擇文件的保存位置。

Save類屬于命名空間,無(wú)法繼承該類。使用此類可以打開和改寫現(xiàn)有文件,也可以創(chuàng)建新文件。

第06章目錄與文件管理

在命名空間中提供了多種類型用于進(jìn)行數(shù)據(jù)文件和數(shù)據(jù)流的讀寫操作。6.3文件的讀寫第06章目錄與文件管理

文件(file)和流(stream)即有區(qū)別又有聯(lián)系。文件是在各種媒質(zhì)上(可移動(dòng)磁盤、硬盤、CD等)永久存儲(chǔ)的數(shù)據(jù)的有序集合。它是一種進(jìn)行數(shù)據(jù)讀寫操作的基本對(duì)象。通常情況下,文件按照樹狀目錄進(jìn)行組織,每個(gè)文件都有文件名、文件所在路徑、創(chuàng)建時(shí)間、訪問(wèn)權(quán)限等屬性。6.3.1文件和流第06章目錄與文件管理

流是字節(jié)序列的抽象概念,如文件、輸入輸出設(shè)備、內(nèi)部進(jìn)程通信管道或者TCP/IP套接字等均可以看成流。流提供一種向后備存儲(chǔ)器寫入字節(jié)和從后備存儲(chǔ)器讀取字節(jié)的方式。除了和磁盤文件直接相關(guān)的文件流以外,還有多種其它類型的流,如分布在網(wǎng)絡(luò)中、內(nèi)存中和磁帶中的流,分別稱為網(wǎng)絡(luò)流、內(nèi)存流和磁帶流。所有表示流的類都是從抽象基類Stream繼承的。6.3.1文件和流(續(xù))第06章目錄與文件管理

流的操作有三類:

讀?。簭牧髦凶x取數(shù)據(jù)到變量中。寫入:把變量中的數(shù)據(jù)寫入到流中。定位:重新設(shè)置流的當(dāng)前位置,以便隨機(jī)讀寫。

File類的靜態(tài)方法主要是用于創(chuàng)建類。一個(gè)類的實(shí)例實(shí)際上代表一個(gè)磁盤文件,使用類對(duì)文件系統(tǒng)上的文件進(jìn)行讀取、寫入、打開和關(guān)閉操作,并對(duì)其它與文件相關(guān)的操作系統(tǒng)句柄進(jìn)行操作,如管道、標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出。讀寫操作可以指定為同步或異步操作。對(duì)輸入輸出進(jìn)行緩沖,從而提高了系統(tǒng)的性能。6.3.1文件和流(續(xù))第06章目錄與文件管理6.3.2文件的打開

打開指定路徑上的,可以使用File類的Open方法或OpenRead方法或OpenText方法。其中Open打開文件的方式有三種,如下表所示:名稱說(shuō)明(String,)打開指定路徑上的,具有讀/寫訪問(wèn)權(quán)限。(String,,)以指定的模式和訪問(wèn)權(quán)限打開指定路徑上的。(String,,,)打開指定路徑上的,具有指定的讀、寫或讀/寫訪問(wèn)模式以及指定的共享選項(xiàng)。第06章目錄與文件管理

值用于指定在文件不存在時(shí)是否創(chuàng)建該文件,并確定是保留還是改寫現(xiàn)有文件的內(nèi)容;值指定可以對(duì)文件執(zhí)行的操作;值指定其它線程所具有的對(duì)該文件的訪問(wèn)類型。6.3.2文件的打開(續(xù))第06章目錄與文件管理利用Open方法打開文件后,可以用StreamReader類來(lái)讀取文件的內(nèi)容,用StreamWriter類向文件寫入內(nèi)容,它們提供了按文本模式讀寫數(shù)據(jù)的方法。

下面例子中用到的OpenText方法是File類的一個(gè)靜態(tài)方法,不能被某個(gè)具體的File類的實(shí)例調(diào)用。6.3.3文本文件的讀寫第06章目錄與文件管理例.從一個(gè)文本文件中讀取內(nèi)容并顯示在屏幕上。usingSystem;usingSystem.IO;class{publicstaticvoidMain(){StreamReadersr;try{sr=("c:\\c#\\file1\\");}catch{

6.3.3文本文件的讀寫(續(xù))第06章目錄與文件管理Console.WriteLine("文件打開失敗");return;}while(sr.Peek()!=-1){Stringstr=sr.ReadLine();Console.WriteLine(str);}Console.WriteLine("到達(dá)文件結(jié)尾");sr.Close();}}6.3.3文本文件的讀寫(續(xù))第06章目錄與文件管理例:向文本文件中寫入文本流。usingSystem;usingSystem.IO;class{publicstaticvoidMain(){StreamWritersw;try{sw=("c:\\c#\\file1\\");}6.3.3文本文件的讀寫(續(xù))第06章目錄與文件管理catch{Console.WriteLine("文件創(chuàng)建失敗");return;}sw.WriteLine("網(wǎng)址:");sw.WriteLine("");

sw.WriteLine("");sw.WriteLine("");sw.WriteLine("");sw.Close();}}6.3.3文本文件的讀寫(續(xù))第06章目錄與文件管理6.3.4二進(jìn)制文件的讀寫B(tài)inaryReader和BinaryWriter類在中,用于按二進(jìn)制模式讀寫文件。它們提供的一些讀寫方法是對(duì)稱的,如針對(duì)不同的數(shù)據(jù)結(jié)構(gòu):

BinaryReader提供了ReadByte、Rea

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論