




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 駱駝祥子人物性格分析教學(xué)教案:探究社會(huì)變遷與人性的掙扎
- 汽車租賃三方合同
- 農(nóng)作物種植技術(shù)手冊(cè)
- 圖表展示各類數(shù)據(jù)統(tǒng)計(jì)情況
- 小學(xué)生數(shù)學(xué)應(yīng)用題的作文分析與實(shí)踐指導(dǎo)
- 留置擔(dān)保合同協(xié)議書
- 文學(xué)佳作圍城中的人物形象解讀
- 智能交通大數(shù)據(jù)平臺(tái)開發(fā)協(xié)議
- 企業(yè)戰(zhàn)略聯(lián)盟穩(wěn)定性評(píng)價(jià)與維護(hù)
- 產(chǎn)品推廣合作合同
- FZ/T 24011-2019羊絨機(jī)織圍巾、披肩
- 【課件】2.1.1植物細(xì)胞工程的基本技術(shù)課件-2021-2022學(xué)年高二下學(xué)期生物人教版選擇性必修3
- 35kV集電線路直埋施工組織設(shè)計(jì)方案
- 客戶來(lái)訪登記表
- 日產(chǎn)新軒逸電子手冊(cè)cvt
- 人教八年級(jí)下冊(cè)英語(yǔ)U5Do-you-remember-what-you-were-doing?課件
- 大連市小升初手冊(cè)
- 醫(yī)療垃圾管理及手衛(wèi)生培訓(xùn)PPT課件
- 嚇數(shù)基礎(chǔ)知識(shí)共20
- 鋰電池安全知識(shí)培訓(xùn)-課件
- 電子產(chǎn)品高可靠性裝聯(lián)工藝下
評(píng)論
0/150
提交評(píng)論