C#各種文件操作的代碼與注釋,具體看下面代碼:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 7 namespace Example 8 { 9 10 class PRogram 11 { 12 13 static void Main(string[] args) 14 { 15 //////////////// 文件打開(kāi) 下面的代碼打開(kāi)D:/wang.txt文件,并且向文件中寫(xiě)入"hello" 16 FileStream textFile = File.Open(@"D:/wang.txt", FileMode.Append);//以Append方式打開(kāi)文件(如果不存在,會(huì)創(chuàng)建) 17 byte[] info = { (byte)'h', (byte)'e', (byte)'l', (byte)'l', (byte)'o' };//要寫(xiě)入的信息 18 textFile.Write(info, 0, info.Length);//Write方法只能寫(xiě)入byte數(shù)組 19 textFile.Close();//關(guān)閉文件流 20 21 22 ////////////////////// 文件創(chuàng)建 23 FileStream newText = File.Create(@"D:/newText.txt");//創(chuàng)建文件 24 newText.Close();//關(guān)閉文件 25 26 //////////////////// 刪除文件 27 File.Delete(@"d:/newText.txt"); 28 29 ////////////////// 文件復(fù)制 如果目標(biāo)文件存在,不允許復(fù)制(就是不能覆蓋同名文件) 30 //File.Copy(@"d:/wang.txt", @"d:/CopyWang.txt"); 31 32 33 //////////////// 文件移動(dòng) 只能在同一個(gè)盤(pán)中移動(dòng) 如果目標(biāo)路徑不正確,不能移動(dòng) 34 // File.Move(@"d:/CopyWang.txt", @"D:/A/movewang.txt"); 35 36 //////////////////////// 設(shè)置文件屬性為 只讀,隱藏 37 //File.SetAttributes(@"D:/copywang.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);//同時(shí)滿足多個(gè)屬性,必須用位或(|). 38 39 /////////////// 判斷文件是不是存在 40 if (File.Exists(@"D:/copywang.txt"))//如果存在 即便是隱藏的文件也可以找到 41 { 42 File.SetAttributes(@"D:/copywang.txt", FileAttributes.ReadOnly);//重新設(shè)置屬性后,隱藏的文件也會(huì)顯示出來(lái),只要不加Hidden屬性 43 Console.WriteLine("找到文件copywang.txt"); 44 } 45 else 46 { 47 Console.WriteLine("沒(méi)有找到文件CopyWang.txt"); 48 } 49 /* 50 此外,F(xiàn)ile類對(duì)于Text文本提供了更多的支持。 51 ?AppendText:將文本追加到現(xiàn)有文件 52 ?CreateText:為寫(xiě)入文本創(chuàng)建或打開(kāi)新文件 53 ?OpenText:打開(kāi)現(xiàn)有文本文件以進(jìn)行讀取 54 但上述方法主要對(duì)UTF-8的編碼文本進(jìn)行操作,從而顯得不夠靈活。在這里推薦讀者使用下面的代碼對(duì)txt文件進(jìn)行操作。 55 ?對(duì)txt文件進(jìn)行“讀”操作,示例代碼如下: 56 */ 57 StreamReader textReader = new StreamReader(@"D:/wang.txt", System.Text.Encoding.Default);//以默認(rèn)編碼方式打開(kāi)文件 58 string str = textReader.ReadToEnd();//讀取文件 59 Console.WriteLine("使用StreamReader讀取文本內(nèi)容:" + str); 60 textReader.Close(); 61 62 //////////////////對(duì)txt文件寫(xiě)內(nèi)容 63 StreamWriter textWriter = new StreamWriter(@"D:/wang.txt"); 64 str = "Learn .Net"; 65 textWriter.Write(str); 66 textWriter.Close(); 67 68 /* 69 System.IO.Directory類和System.DirectoryInfo類 70 主要提供關(guān)于目錄的各種操作,使用時(shí)需要引用System.IO命名空間。下面通過(guò)程序?qū)嵗齺?lái)介紹其主要屬性和方法。 71 */ 72 Directory.CreateDirectory(@"D:/wang1/wang");//創(chuàng)建目錄(文件夾)如果已經(jīng)存在,則保持;還可以一次創(chuàng)建多級(jí)目錄 73 74 /////////////////////////////////目錄屬性設(shè)置方法 75 DirectoryInfo dirInfo = new DirectoryInfo(@"D:/wang1/wang");// 76 dirInfo.Attributes = FileAttributes.Hidden;// | FileAttributes.ReadOnly;//設(shè)置文件夾屬性 77 78 /////////////////Delete方法的第二個(gè)參數(shù)為bool類型,它可以決定是否刪除非空目錄。 79 //如果該參數(shù)值為true,將刪除整個(gè)目錄,即使該目錄下有文件或子目錄;若為false,則僅當(dāng)目錄為空時(shí)才可刪除。 80 //Directory.Delete(@"D:/wang1", true);//如果文件設(shè)置為ReadOnly,則不能刪除 81 82 //Directory.Move(@"d:/wang1", @"d:/wang3");//把文件夾wang1移動(dòng)到文件夾wang3中,相當(dāng)于把wang1刪除,創(chuàng)建一個(gè)wang3,再把內(nèi)容移動(dòng)到wang3 83 84 string[] Directories = Directory.GetDirectories(@"D:/wang3");//獲得文件夾wang3的目錄 85 foreach (string var in Directories) 86 Console.WriteLine(var); 87 88 string[] Files = Directory.GetFiles(@"D:/wang1");//獲取文件夾wang1下面的所有文件 89 foreach (string var in Files) 90 Console.WriteLine(var); 91 92 if (Directory.Exists(@"D:/wang1")) 93 Console.WriteLine("文件夾wang1存在"); 94 95 /* 96 在C#中 “/”是特殊字符,要表示它的話需要使用“//”。由于這種寫(xiě)法不方便,C#語(yǔ)言提供了@對(duì)其簡(jiǎn)化。只要在字符串前加上@即可直接使用“/”。 97 所以上面的路徑在C#中應(yīng)該表示為“Book”,@“/Tmp/Book”,@“C:/Tmp/Book”。 98 */ 99 100 Console.ReadLine(); 101 102 } 103 } 104 }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注