C#文件操作

  C# 文件操作

By feng1725 發表於 2006-4-19 23:35:00

 

文件操作: 檢查 創建 讀取 寫入 修改 刪除
目錄操作: 檢查 創建 讀取 寫入 修改 刪除

--------------------------------------------------------------------------------
文件操作

若要執行此操作... 請參閱本主題中的示例...
創建文本文件 向文件寫入文本 
寫入文本文件 向文件寫入文本 
讀取文本文件 從文件讀取文本 
向文件中追加文本 File.AppendText FileInfo.AppendText 
重命名或移動文件 File.Move FileInfo.MoveTo 
刪除文件 File.Delete FileInfo.Delete 
複製文件 File.Copy FileInfo.CopyTo 
獲取文件大小 FileInfo.Length 
獲取文件屬性 File.GetAttributes 
設置文件屬性 File.SetAttributes 
確定文件是否存在 File.Exists 
讀取二進制文件 對剛創建的數據文件進行讀取和寫入 
寫入二進制文件 對剛創建的數據文件進行讀取和寫入 
檢索文件擴展名 Path.GetExtension 
檢索文件的完全限定路徑 Path.GetFullPath 
檢索路徑中的文件名和擴展名 Path.GetFileName 
更改文件擴展名 Path.ChangeExtension 

目錄操作

System.IO 類

目錄操作
string[] drives = Directory.GetLogicalDrives(); //本地驅動器的名,如:C:/等
string path = Directory.GetCurrentDirectory();  //獲取應用程序的當前工作目錄
Path.GetFileName(@"c:/dir/file.txt");           //獲取子目錄的名字,result的結果是file.txt
Directory.GetFiles(路徑及文件名)                //獲取指定目錄中的文件名(文件列表)
DirectoryInfo di = new DirectoryInfo(@"f:/MyDir"); //構造函數創建目錄
DirectoryInfo di=Directory.CreateDirectory(@"f:/bbs"); //創建對象並創建目錄
if (di.Exists == false) //檢查是否存在此目錄
di.Create(); //創建目錄
DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //以相對路徑創建子目錄
dis.Delete(true); //刪除剛創建的子目錄
di.Delete(true); //刪除創建目錄

文件操作
Directory.Delete(@"f:/bbs2", true); //刪除目錄及其子目錄和內容(如爲假不能刪除有內容的目錄包括子目錄)
Directory.GetDirectories 方法 //獲取指定目錄中子目錄的名稱
string[] dirs = Directory.GetDirectories(@"f:/", "b*");
Console.WriteLine("此目錄中以b開頭的子目錄共{0}個!", dirs.Length);
foreach (string dir in dirs) { Console.WriteLine(dir); }
Directory.GetFileSystemEntries //獲取指定目錄中的目錄及文件名
Directory.GetLogicalDrives //檢索此計算機上格式爲“<驅動器號>:/”的邏輯驅動器的名稱,【語法同上】
Directory.GetParent //用於檢索父目錄的路徑。
DirectoryInfo a = Directory.GetParent(path);
Console.WriteLine(a.FullName);Directory.Move //移動目錄及其在內的所有文件
Directory.Move(@"f:/bbs/1", @"f:/bbs/2"); //將文件夾1內的文件剪到文件夾2內 文件夾2是剛創建的

 

Stream // 對字節的讀寫操作(包含對異步操作的支持) Reading Writing Seeking

BinaryReader和BinaryWriter // 從字符串或原始數據到各種流之間的讀寫操作

FileStream類通過Seek()方法進行對文件的隨機訪問,默認爲同步

TextReader和TextWriter //用於gb2312字符的輸入和輸出

StringReader和StringWriter //在字符串中讀寫字符

StreamReader和StreamWriter //在流中讀寫字符

BufferedStream 爲諸如網絡流的其它流添加緩衝的一種流類型.

MemoryStream 無緩衝的流

NetworkStream 互聯網絡上的流



//編碼轉換
Encoding e1 = Encoding.Default;               //取得本頁默認代碼
Byte[] bytes = e1.GetBytes("中國人民解放軍"); //轉爲二進制
string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //轉回UTF-8編碼

 




//文本文件操作:創建/讀取/拷貝/刪除
using System;
using System.IO;
class Test
{
   string path = @"f:/t.txt";
   public static void Main()
   {       
      //創建並寫入(將覆蓋已有文件)
      if (!File.Exists(path))
      {         
         using (StreamWriter sw = File.CreateText(path))
         {
            sw.WriteLine("Hello");
         }
      }
      //讀取文件
      using (StreamReader sr = File.OpenText(path))
      {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
           Console.WriteLine(s);
        }
     }
     //刪除/拷貝
     try
     {
        File.Delete(path);
        File.Copy(path, @"f:/tt.txt");
     }
     catch (Exception e)
     {
        Console.WriteLine("The process failed: {0}", e.ToString());
     }
   }
}


//流文件操作
private const string name = "Test.data";
public static void Main(String[] args)
{
    //打開文件()  ,或通過File創建立如:fs = File.Create(path, 1024)
    FileStream fs = new FileStream(name, FileMode.CreateNew);
    //轉換爲字節 寫入數據(可寫入中文)
    Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    //字節數組,字節偏移量,最多寫入的字節數
    fs.Write(info, 0, info.Length);
    w.Close();
    fs.Close();
    //打開文件
    fs = new FileStream(name, FileMode.Open, FileAccess.Read);
    //讀取
    BinaryReader r = new BinaryReader(fs);
    for (int i = 0; i < 11; i++)
    {
        Console.WriteLine(r.ReadInt32());
    }
    w.Close();
    fs.Close();
}

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章