亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

淺析C#中的文件操作

2023-05-15 12:29:33
字體:
來源:轉載
供稿:網友

微軟的.Net框架為我們提供了基于流的I/O操作方式,這樣就大大簡化了開發者的工作。因為我們可以對一系列的通用對象進行操作,而不必關心該I/O操作是和本機的文件有關還是和網絡中的數據有關。.Net框架主要為我們提供了一個System.IO命名空間,該命名空間基本包含了所有和I/O操作相關的類。

本文將向大家介紹一些基本的文件操作方法,包括對文件系統中的目錄和文件的操作,還有就是文件的讀寫操作等。通過運用System.IO.DirectoryInfo類和System.IO.FileInfo類我們可以輕易的完成與目錄和文件相關的操作,而通過運用System.IO.StreamReader類和System.IO.StreamWriter類我們可以方便的完成與文件的讀寫相關的操作。 

命名空間概覽

下面的表格顯示了System.IO命名空間中最重要的一些類,通過運用這些類我們就能完成基本的文件操作。 

表1 
類名 功能和用途
BinaryReader、BinaryWriter 讀寫二進制數據
Directory、File、DirectoryInfo以及FileInfo 創建、刪除并移動目錄和文件,通過屬性獲取特定目錄和文件的相關信息
FileStream 以隨機方式訪問文件
MemoryStream 訪問存儲在內存中的數據
StreamReader 、StreamWriter 讀寫文本數據信息
StringReader、StringWriter 運用字符串緩沖讀寫文本數據信息

 運用DirectoryInfo類和FileInfo類

DirectoryInfo類和FileInfo類的基類都是FileSystemInfo類,這個類是一個抽象類,也就是說你不可以實例化該類,只能通過繼承產生其子類并實例化其子類。然而你卻可以運用由該類定義的各種屬性,下面的表格顯示了該類已經定義了的各種屬性。 

表2 
屬性 功能和用途
Attributes 返回和文件相關的屬性值,運用了FileAttributes枚舉類型值
CreationTime 返回文件的創建時間
Exists 檢查文件是否存在于給定的目錄中
Extension 返回文件的擴展名
LastAccessTime 返回文件的上次訪問時間
FullName 返回文件的絕對路徑
LastWriteTime 返回文件的上次寫操作時間
Name 返回給定文件的文件名
Delete() 刪除一個文件的方法,請務必謹慎地運用該方法

DirectoryInfo類提供了創建、刪除和移動目錄等方法,要運用表2中的各種屬性,我們首先得創建一個DirectoryInfo類的對象,然后就可以訪問其各種屬性了。

 

DirectoryInfo dir1 = new DirectoryInfo(@"F:/Test");Console.WriteLine("Full Name is : {0}", dir1.FullName);Console.WriteLine("Attributes are : {0}", dir1.Attributes.ToString());

同時,我們還可以運用FileAttributes枚舉類型值來獲取和文件相關的各種屬性,下面的表格就顯示了該枚舉類型中的各種值。 

表3 
功能和用途
Archive 返回文件的存檔狀態
Compressed 返回文件是否被壓縮
Directory 返回文件是否是一個目錄
Encrypted 返回文件是否被加密
Hidden 返回文件是否是隱藏的
Offline 表明文件數據是不可得的
ReadOnly 表明文件是只讀的
System 表明文件是一個系統文件

 目錄下的文件操作

運用DirectoryInfo類的對象我們可以輕松的實現對目錄以及和目錄中的文件相關的操作,假如你要獲得某個目錄F:/Pictures下的所有BMP文件,那么通過下面的代碼就可以實現該功能。

 

DirectoryInfo dir = new DirectoryInfo(@"F:/ Pictures");FileInfo[] bmpfiles = dir.GetFiles("*.bmp);Console.WriteLine("Total number of bmp files", bmpfiles.Length);Foreach( FileInfo f in bmpfiles){  Console.WriteLine("Name is : {0}", f.Name);  Console.WriteLine("Length of the file is : {0}", f.Length);  Console.WriteLine("Creation time is : {0}", f.CreationTime);  Console.WriteLine("Attributes of the file are : {0}",                    f.Attributes.ToString());}

上面的代碼中我們首先創建了一個DirectoryInfo對象,然后通過調用該對象的GetFiles方法獲取目錄F:/Pictures下的所有以bmp為擴展名的文件,該方法返回的值是一個FileInfo類型的數組,每個元素則代表一個文件。最后,程序還列舉了每個BMP文件的相關屬性。 

創建子目錄

運用DirectoryInfo類創建子目錄是非常容易的,你只要調用其中CreateSubdirectory()方法即可,演示代碼如下。

 

DirectoryInfo dir = new DirectoryInfo(@"F:/ Pictures");try{  dir.CreateSubdirectory("Sub");  dir.CreateSubdirectory(@"Sub/MySub");}catch(IOException e) {  Console.WriteLine(e.Message);}

運用FileInfo類創建、刪除文件

通過FileInfo類,我們可以方便地創建出文件,并可以訪問文件的屬性同時還可以對文件進行打開文件、關閉文件、讀寫文件等基本的操作。下面的代碼顯示了如何創建一個文本文件并且去訪問其創建時間、文件的絕對路徑以及文件屬性等文件信息,最后程序還給出了刪除文件的方法。

 

FileInfo fi = new FileInfo(@"F:/Myprogram.txt");FileStream fs = fi.Create();Console.WriteLine("Creation Time: {0}",fi.CreationTime);Console.WriteLine("Full Name: {0}",fi.FullName);Console.WriteLine("FileAttributes: {0}",fi.Attributes.ToString());Console.WriteLine("Press any key to delete the file");Console.Read();fstr.Close();fi.Delete();

理解FileInfo類的Open()方法

我們在對文件進行讀寫操作之前必須打開文件,FileInfo類為我們提供了一個Open()方法,該方法包含了兩個枚舉類型值的參數,一個為FileMode枚舉類型值,另一個為FileAccess枚舉類型值。通過設定這兩個參數值,我們可以對文件的訪問模式和操作權限進行控制。下面的兩個表格分別顯示了FileMode枚舉類型的值和FileAccess枚舉類型的值。

表4 
功能和用途
Append 打開文件并添加數據,運用該方法時FileAccess枚舉類型值應為Write。
Create 創建一個新文件,有可能會覆蓋已經存在的文件。
CreateNew 創建一個新文件,如果該文件已經存在,則拋出IOException異常。
Open 打開一個已經存在的文件。
OpenOrCreate 打開文件,如果該文件不存在,則創建之。
Truncate 截短一個已經存在的文件。

表5 

功能和用途
Read 可以從一個文件中讀取數據。
ReadWrite 可以從一個文件中讀取數據,同時還可以向文件中寫入數據。
Write 可以向文件中寫入數據。

下面的代碼顯示了Open()方法的具體運用方法。

 

FileInfo f = new FileInfo("F:/MyFile.txt");FileStream s = f.Open(FileMode.OpenorWrite, FileAccess.Read);

運用StreamReader類和StreamWriter類實現文件的讀寫操作

對文件的讀寫操作應該是最重要的文件操作,System.IO命名空間為我們提供了諸多文件讀寫操作類,在這里我要向大家介紹最常用也是最基本的StreamReader類和StreamWriter類。從這兩個類的名稱我們不難發現它們都是基于流的讀寫操作類。

我們可以通過File類的OpenText()方法來獲取一個StreamReader對象,通過該對象我們可以實現對文本文件的讀操作,方法如下:

 

Console.WriteLine("Reading the contents from the file");StreamReader s = File.OpenText("MyText.txt");string read = null;while ((read = s.ReadLine()) != null){  Console.WriteLine(read);}s.Close();

而通過調用FileInfo類的CreateText()方法我們可以獲取一個StreamWriter對象,調用StreamWriter類的WriteLine()我們就可以向文本文件中寫入數據了,方法如下:

 

FileInfo f = new FileInfo("MyText.txt")StreamWriter w = f.CreateText();w.WriteLine("This is from");w.WriteLine("Chapter 1");w.WriteLine("Of C# Module");w.Write(w.NewLine);w.WriteLine("Thanks for your time");w.Close();

總結

以上我簡要地向大家介紹了C#文件操作的基本知識和方法,通過本文大家不難發現.Net框架下I/O操作的方便性。讀者在學習了本文后,如果要進行一些基本的文件操作,那么對于System.IO命名空間中的諸如DirectoryInfo類、FileInfo類、FileStream類、StreamReader類以及StreamWriter類等類一定得有基本了解并在實際應用中靈活使用之。如果要對文件操作有更進一步的控制,那么不妨去研究一下System.IO命名空間中的更為具體和細節的一些類。最后,希望本文對大家能有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97人洗澡人人免费公开视频碰碰碰| 久久久久www| 日韩视频精品在线| 美女少妇精品视频| 日本精品久久久久影院| 久久久视频在线| 国内精品久久久久久中文字幕| 91久久久久久久一区二区| 亚洲成人免费网站| 国产亚洲日本欧美韩国| 国产精品视频中文字幕91| 欧美激情手机在线视频| 亚洲香蕉av在线一区二区三区| 性欧美xxxx视频在线观看| 国产精品第8页| 国产日韩精品在线观看| 96精品视频在线| 伊人成人开心激情综合网| 日韩电影中文字幕在线观看| 亚洲欧美成人一区二区在线电影| 欧美黑人巨大精品一区二区| 日韩欧美有码在线| 97国产精品久久| 91丨九色丨国产在线| 国产精品一区二区久久国产| 亚洲国产精品电影在线观看| 国产精品久久一区| 欧美交受高潮1| 97在线观看免费| 亚洲v日韩v综合v精品v| 国产成人+综合亚洲+天堂| 成人国产精品久久久| 久久精品久久久久久国产 免费| 欧美一级电影免费在线观看| 色综合天天狠天天透天天伊人| 久久久伊人日本| 欧美一区二区三区艳史| 色噜噜狠狠色综合网图区| 中文字幕亚洲二区| 久久久久www| 欧美高清一级大片| 色综合色综合网色综合| 久久影视电视剧免费网站清宫辞电视| 亚洲美女黄色片| 日本中文字幕不卡免费| 亚洲天堂成人在线| 午夜美女久久久久爽久久| 亚洲第一区中文字幕| 欧美美女操人视频| 日产精品99久久久久久| 久久精品成人欧美大片| 欧美激情亚洲视频| 国产拍精品一二三| 精品久久久久久久大神国产| 久久久久久久爱| 久久久精品一区二区| 91精品国产高清久久久久久91| 久久精品精品电影网| 亚洲人成在线免费观看| 91视频免费在线| 亚洲欧美一区二区三区情侣bbw| 国产成人福利夜色影视| 视频在线观看一区二区| 亚洲精品99久久久久| 欧美日韩另类视频| 久久精品视频99| 91网站免费观看| 国产精品日韩在线一区| 国自产精品手机在线观看视频| 日韩精品999| 久久69精品久久久久久国产越南| 欧美国产日韩视频| 成人免费xxxxx在线观看| 欧美性xxxx极品hd欧美风情| 国产在线日韩在线| 国产精品视频精品视频| 欧美黑人巨大精品一区二区| 91国产中文字幕| 欧美日本精品在线| 日韩av最新在线| 欧美中文字幕视频在线观看| 久久国产精品久久久久久久久久| 久久成人在线视频| 亚洲www在线观看| 亚洲欧美日韩精品久久奇米色影视| 欧美在线视频在线播放完整版免费观看| 欧美第一页在线| 亚洲美女免费精品视频在线观看| 疯狂蹂躏欧美一区二区精品| 欧美性黄网官网| 欧美一级淫片aaaaaaa视频| 国产精品成av人在线视午夜片| 精品露脸国产偷人在视频| 18一19gay欧美视频网站| 日韩在线视频网| 国产免费亚洲高清| 午夜精品久久久久久久99热浪潮| 91香蕉电影院| 爽爽爽爽爽爽爽成人免费观看| 欧美日韩国产激情| 成人激情在线观看| 亚洲国产精品久久91精品| 亚洲va电影大全| 国产一区二区三区在线免费观看| 精品一区二区三区三区| 555www成人网| 欧美一级视频一区二区| 毛片精品免费在线观看| 91精品国产91久久久久久吃药| 欧美在线观看一区二区三区| 岛国av午夜精品| 国产乱肥老妇国产一区二| 亚洲国产精品成人av| 欧美另类极品videosbest最新版本| 国产视频观看一区| 久久久精品视频成人| 国产精品久久久久久av福利软件| 97精品视频在线观看| 国产精品久久久久久av| 亚洲欧美制服另类日韩| 日韩专区在线播放| 欧美一级大片视频| 欧美性猛交xxxx黑人| 亚洲激情视频在线| 91精品综合久久久久久五月天| 日本久久久久久| 亚洲精品一区二区三区婷婷月| 亚洲精品国产精品乱码不99按摩| 国产精品第一页在线| 久久97精品久久久久久久不卡| 亚洲女同精品视频| 国产欧美一区二区三区四区| 国产一区二区动漫| 亚洲自拍中文字幕| 国产在线不卡精品| 亚洲xxxx18| 欧美中文字幕在线视频| 久久99热这里只有精品国产| 久久久久久网址| 国产成人精品免高潮费视频| 中文综合在线观看| 亚洲人成在线观看| 一本一本久久a久久精品牛牛影视| 91sao在线观看国产| 欧美亚洲另类激情另类| 日韩av免费在线播放| 在线亚洲午夜片av大片| 国产精品高潮呻吟久久av黑人| 国产精品流白浆视频| 久久久久久免费精品| 91精品久久久久久久久久入口| 国产亚洲福利一区| 亚洲成人aaa| 欧美日韩国产精品一区二区不卡中文| 国产日韩中文字幕在线| 欧美在线中文字幕| 欧美伦理91i| 最新国产成人av网站网址麻豆| 久久五月天综合| 国产一区二区香蕉| 日韩av免费在线看| 69**夜色精品国产69乱| 国产日韩欧美夫妻视频在线观看| 91日韩在线播放|