C#文件操作基础之File类和FileInfo类
文件和I/O流的差異:
因此對(duì)于文件,我們經(jīng)常想到文件夾路徑,磁盤存儲(chǔ),文件和文件夾名等方面。
I/O流提供一種后備存儲(chǔ)寫入字節(jié)和從后備存儲(chǔ)讀取字節(jié)的方式。
后備存儲(chǔ)能夠?yàn)槎喾N存儲(chǔ)媒介之中的一個(gè)。
System.IO命名空間中的經(jīng)常使用類:
BinaryWriter ? ? 以二進(jìn)制形式將基元類型寫入流,并支持用特定的編碼寫入字符串
Directory ? ? ? ?公開用于創(chuàng)建、移動(dòng)和枚舉通過文件夾和子文件夾的靜態(tài)方法,無法被繼 ? ? ? ? ? ? ? ? ?承
DirectoryInfo ? ?公開用于創(chuàng)建、移動(dòng)和枚舉文件夾和子文件夾的實(shí)例方法,無法被繼承
File ? ? ? ? ? ? 提供創(chuàng)建、復(fù)制、刪除、移動(dòng)和打開文件的靜態(tài)方法,協(xié)助創(chuàng)建 ? ? ? ? ? ? ? ? ? ? ?FileStream對(duì)象
FileInfo ? ? ? ? 提供創(chuàng)建、復(fù)制、刪除、移動(dòng)和打開文件的實(shí)例方法,而且?guī)椭鷦?chuàng)建 ? ? ? ? ? ? ? ? ?FileStream對(duì)象
FileStream ? ? ? 公開以文件為主的Stream,既支持同步讀寫操作,也支持異步讀寫操 ? ? ? ? ? ? ? ? ?作
FileSystemInfo ? 為FileInfo和DirectoryInfo對(duì)象提供基類
StreamReader ? ? 實(shí)現(xiàn)一個(gè)TextReader,使其以一種特定的編碼從字節(jié)流中讀取字符
StreamWriter ? ? 實(shí)現(xiàn)一個(gè)TextWriter,使其以一種特定的編碼向流中寫入字符
Copy ? ? ? ? ? ? ? ? ?將現(xiàn)有文件拷貝到新文件
Create ? ? ? ? ? ? ? ?在指定路徑中創(chuàng)建文件Delete ? ? ? ? ? ? ? ?刪除指定的文件,假設(shè)指定的文件不存在,則不引起異常
Exists ? ? ? ? ? ? ? ?確定指定的文件是否存在
Move ? ? ? ? ? ? ? ? ?將指定文件移到新位置,并提供指定新文件名稱的選項(xiàng)
Open ? ? ? ? ? ? ? ? ?打開指定路徑上的FileStream
GetCreationTime ? ? ? 返回指定文件或文件夾的創(chuàng)建日期和時(shí)間
OpenRead ? ? ? ? ? ? ?打開現(xiàn)有文件進(jìn)行讀取
OpenText ? ? ? ? ? ? ?打開現(xiàn)有UTF-8編碼文本文件以進(jìn)行讀取
OpenWrite ? ? ? ? ? ? 打開現(xiàn)有文件進(jìn)行寫入
2.FileInfo類:
Directory ? ? ? 獲取父文件夾的實(shí)例
Exists ? ? ? ? ?獲取指示文件是否存在的值
FullName ? ? ? ?獲取文件夾或文件的完整文件夾
Length ? ? ? ? ?獲取當(dāng)前文件的大小
Name ? ? ? ? ? ?獲取文件名稱
3.File類和FileInfo類的基本操作方法
注意:
因?yàn)镕ile類中的全部方法都是靜態(tài)的,所以假設(shè)僅僅想運(yùn)行一個(gè)操作,那么使用File類中方法的效率比使用對(duì)應(yīng)的FileInfo類中的方法可能更高
File類中的方法都是靜態(tài)方法,在使用時(shí)須要對(duì)全部方法都運(yùn)行安全檢查。因此假設(shè)打算多次重用某個(gè)對(duì)象,可考慮改用FileInfo類中的對(duì)應(yīng)方法,由于不總是須要安全檢查。
(1)推斷文件是否存在Exists方法
返回bool型,假設(shè)path為空或者沒有權(quán)限,則返回false
File:推斷C盤根文件夾下有沒有test.txt文件:
File.Exists("C:\\test.txt")
FileInfo:
FileInfo fileinfo = new FileInfo("C:\\test.txt")
if(fileinfo.Exists){}
File類的Create方法有4中重載方法:
public static FileStream Create(string path)
public static FileStream Create(string path,int bufferSize)
public static FileStream Create(string path,int bufferSize,FileOptions options)
public static FileStream Create(string path,int bufferSize,FileOptions options,FileSecurity fileSecurity)
File類Create方法參數(shù)說明
path ? ? ? ? ? ? ? 文件名稱
bufferSize ? ? ? ? 用于讀取和寫入文件的已放入緩沖區(qū)的字節(jié)數(shù)
options ? ? ? ? ? ?FileOptions值之中的一個(gè),它描寫敘述怎樣創(chuàng)建或改寫該文件
fileSecurity ? ? ? FileSecurity值之中的一個(gè),它確定文件的訪問控制和審核安全性
File類:
File.Create("C:\\test.txt")
FileInfo類:
FileInfo fileinfo = new FileInfo("C:\\test.txt")
fileinfo.Create();
(3)拷貝文件用File類的Copy方法以及FileInfo類的CopyTo方法
File類的Copy方法或者FileInfo類的CopyTo方法
File類的Copy方法有兩種重載方式
public static void Copy(string sourceFileName,string destFileName)
public static void Copy(string sourceFileName,string destFileName,bool overwrite)
sourceFileName表示要復(fù)制的文件,destFileName表示目標(biāo)文件的名稱,不能是文件夾,假設(shè)是第一種重載,則目標(biāo)文件參數(shù)不能是現(xiàn)有文件。
overwrite表示能否夠改寫目標(biāo)文件
將C盤根文件夾下的test.txt文本文件拷貝到D盤根文件夾下:
(這邊注意措辭,說明D盤根文件夾下是沒有test.txt文件的)
File.Copy("C:\\test.txt","D:\\test.txt")
FileInfo類的CopyTo方法也有兩種重載方式
public FileInfo CopyTo(string destFileName)
public FileInfo CopyTo(string destFileName,bool overwrite)
FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.CopyTo("D:\\test.txt",true);
(4)移動(dòng)文件用File類的Move方法和FileInfo類的MoveTo方法
File類-Move方法-
public static?void?Move(string sourceFileName,string destFileName)
File.Move("C:\\test.txt","D:\\test.txt")
FileInfo類-MoveTo方法-publicvoid?MoveTo(string destFileName)
FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.MoveTo("D:\\test.txt");
(5)刪除文件用Delete方法
File類-Delete方法-public staticvoid?Delete(string path)
File.Delete("C:\\test.txt")
FileInfo類-Delete方法-publicvoid?Delete(string path)
FileInfo fileinfo = new FileInfo("C:\\test.txt");
fileinfo.Delete("D:\\test.txt");
轉(zhuǎn)載于:https://www.cnblogs.com/zfyouxi/p/4261539.html
總結(jié)
以上是生活随笔為你收集整理的C#文件操作基础之File类和FileInfo类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLyog 激活 注册码
- 下一篇: php mysql 单例模式_PHP单例