文件及文件夾操做數組
C/S:WinForm能夠操做客戶端文件 Client Server
B/S:瀏覽器服務 Brower Server瀏覽器
命名空間:using system .IO;加密
1. File類:文件spa
建立:File.Create(路徑);建立文件,返回FileStreamcode
FileStream fs = File.Create(路徑);以後須要關閉不然打不開,fs.close();orm
刪除:File.Delete(路徑);無返回值對象
複製文件:File.Copy(源文件,目標文件);blog
剪切文件:File.Move(源文件路徑,目標路徑);遞歸
判斷文件是否存在:File.Exists(路徑);返回布爾型,true表明已存在get
文件加密:File.Encrypt(); 文件名會變成綠色 當前用戶仍是能夠打開 複製給別的用戶打不開
文件解密:File.Decrypt();
File.GetCreationTime(路徑); 獲取建立時間,返回DateTime類型 SetCreationTime(路徑,DateTime類型);修改建立時間
File.GetLastAccessTime(路徑); 最後訪問時間,返回DateTime類型 SetLastAccessTime(路徑,DateTime類型);修改訪問時間
File.GetLastWriteTime(路徑); 最後修改時間,返回DateTime類型 SetLastWriteTime(路徑,DateTime類型);修改修改時間
2. Directory 類,目錄(文件夾)
Directory .CreateDirectory(路徑); 建立目錄
Directory .Delete(路徑); 刪除目錄
Directory .Exists(路徑); 目錄是否存在
三個時間的get和set 同File類
Directory .GetDirectories(路徑); 獲取子目錄,返回string數組
Directory .GetFiles(路徑); 獲取子文件!名!,返回string數組,string[] s = Directory .GetFiles(路徑);
Directory .GetDirectoryRoot(路徑); 獲取根目錄
Directory .GetParent(路徑); 獲取上一級目錄
△3.FileInfo 類
是實例方法,須要造對象new出來才能用,上面的都是File的靜態方法
建立文件:FileInfo f = new FileInfo(路徑); FileStream s = f.Create(); s.Close();
刪除文件:FileInfo f = new FileInfo(路徑); f.Delete();
複製文件:FileInfo f = new FileInfo(路徑); f.CopyTo(目標路徑,是否覆蓋(true是覆蓋));
移動文件:FileInfo f = new FileInfo(路徑); f.MoveTo(目標路徑);
文件是否存在:FileInfo f = new FileInfo(路徑); bool b = f.Exists;布爾型,是個屬性
獲取文件名:FileInfo f = new FileInfo(路徑);string s = f.FullName;屬性,帶路徑的文件名
得到建立時間:DateTime d = f.CreationTime;三個時間都同樣,都是屬性
設置建立時間:f.CreationTime = DateTime.Now.AddDays(100); 三個都同樣
獲取文件大小:f.Length
△4.DirectoryInfo 類
建立目錄:DirectoryInfo d = new DirectoryInfo(路徑); d.Create();
刪除目錄: d.Delete();
移動目錄: d.MoveTo(目標路徑);
目錄是否存在: bool b = d.Exists;
得到目錄全名: d.FullName;
得到子文件!對象信息!: FileInfo[] f = d.GetFiles(); 返回的是文件對象數組,內容更詳細,d.GetFiles("*.exe")只獲取exe的文件
得到子目錄:DirectoryInfo[] dr = d.GetDirectories();
例題:(用遞歸)
1.獲取文件夾下全部文件並輸出
//獲取文件夾下全部的文件並輸出 private void GetAllFiles(string path) { //造文件夾信息對象 DirectoryInfo df = new DirectoryInfo(path); //獲取該文件夾下全部文件 FileInfo[] fsz = df.GetFiles(); //輸出文件信息 foreach (FileInfo data in fsz) { richTextBox1.Text += data.FullName + "|***|"; } //獲取該文件夾下全部的子文件夾 DirectoryInfo[] dsz = df.GetDirectories(); //遍歷 foreach (DirectoryInfo datad in dsz) { GetAllFiles(datad.FullName); } }
2.給一個文件夾,獲取該文件夾下全部文件的數量
private void button1_Click(object sender, EventArgs e) { label1.Text = FileCount(@"E:\test").ToString(); } private int fcount = 0; private int FileCount(string path) { //造文件夾信息對象 DirectoryInfo dwjj = new DirectoryInfo(path); //取當前文件夾下文件數量 fcount += dwjj.GetFiles().Length; //取當前目錄下全部文件夾 foreach (DirectoryInfo d in dwjj.GetDirectories()) { FileCount(d.FullName); } return fcount; }
3.給一個文件夾,獲取該文件下全部的文件夾數量
private int dcount = 0; private int DirCount(string path) { //造一個文件夾信息對象 DirectoryInfo d = new DirectoryInfo(path); //取該目錄下全部文件夾 DirectoryInfo[] df = d.GetDirectories(); //累加文件夾數量 dcount += df.Length; //遍歷全部文件夾 foreach (DirectoryInfo w in df) { DirCount(w.FullName); } return dcount; } private void button2_Click(object sender, EventArgs e) { label2.Text = DirCount(@"E:\test").ToString(); }
4.給一個文件夾,獲取該文件夾大小
private void button3_Click(object sender, EventArgs e) { label3.Text = DirSize(@"E:\test").ToString(); } private long size = 0; private long DirSize(string path) { //造一目錄信息對象 DirectoryInfo d = new DirectoryInfo(path); //取當前目錄下全部文件 foreach (FileInfo data in d.GetFiles()) { size += data.Length; } //取當前目錄下全部文件夾 foreach (DirectoryInfo data in d.GetDirectories()) { DirSize(data.FullName); } return size; }
5.給一個文件夾,刪除該文件夾
private void button4_Click(object sender, EventArgs e) { DeleteDir(@"E:\test"); } private void DeleteDir(string path) { //造目錄信息對象 DirectoryInfo d = new DirectoryInfo(path); //取該目錄下全部文件,刪除 foreach (FileInfo data in d.GetFiles()) { data.Delete(); } //刪除子文件夾 foreach (DirectoryInfo data in d.GetDirectories()) { DeleteDir(data.FullName); } //刪除空的文件夾 d.Delete(); }