閱讀721 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C# 文件,文件夾的操作

 

C# 文件操作(文件夾 及 文件)

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();
}

 

//C#寫入/讀出文本文件
   string fileName =@"c:/111.txt";
   StreamReader sr = new StreamReader(fileName);                      
   string  str=sr.ReadLine  ();                                                                                                                                    
   sr.close();                                       
   StreamWriter rw=File.CreateText(Server.MapPath(".")+"//myText.txt");
   rw.WriteLine("寫入");
   rw.WriteLine("abc");
   rw.WriteLine(".NET筆記");
   rw.Flush();
   rw.Close();
//打開文本文件 
StreamReader sr=File.OpenText(Server.MapPath(".")+"//myText.txt");
StringBuilder output=newStringBuilder();
string rl;
while((rl=sr.ReadLine())!=null)
{
   output.Append(rl+"");
}
lblFile.Text=output.ToString();
sr.Close();

//C#追加文件
StreamWriter sw=File.AppendText(Server.MapPath(".")+"//myText.txt");
sw.WriteLine("追逐理想");
sw.WriteLine("kzlll");
sw.WriteLine(".NET筆記");
sw.Flush();
sw.Close();
//C#拷貝文件
string OrignFile,NewFile;
OrignFile=Server.MapPath(".")+"//myText.txt";
NewFile=Server.MapPath(".")+"//myTextCopy.txt";
File.Copy(OrignFile,NewFile,true);
//C#刪除文件
string delFile=Server.MapPath(".")+"//myTextCopy.txt";
File.Delete(delFile);
//C#移動文件
string OrignFile,NewFile;
OrignFile=Server.MapPath(".")+"//myText.txt";
NewFile=Server.MapPath(".")+"//myTextCopy.txt";
File.Move(OrignFile,NewFile);
//C#創建目錄
//創建目錄c:/sixAge
DirectoryInfod=Directory.CreateDirectory("c://sixAge");
//d1指向c:/sixAge/sixAge1
DirectoryInfod1=d.CreateSubdirectory("sixAge1");
//d2指向c:/sixAge/sixAge1/sixAge1_1
DirectoryInfod2=d1.CreateSubdirectory("sixAge1_1");
//將當前目錄設為c:/sixAge
Directory.SetCurrentDirectory("c://sixAge");
//創建目錄c:/sixAge/sixAge2
Directory.CreateDirectory("sixAge2");
//創建目錄c:/sixAge/sixAge2/sixAge2_1
Directory.CreateDirectory("sixAge2//sixAge2_1"); 

最後更新:2017-04-02 06:51:26

  上一篇:go C 語言的謎題
  下一篇:go magento -- 為Magento提速再做一點小努力之用工具壓縮網頁上的圖片