.Net筆記:System.IO之windows文件操作的深入分析_.Net教程

      編輯Tag賺U幣

      推薦:解析在.net中使用XSLT轉換xml文檔的示例詳解
      本篇文章是對在.net中使用XSLT轉換xml文檔的示例進行了詳細的分析介紹,需要的朋友參考下

      .Net中處理系統文件相關的幾個類分別是File、Directory、FileInfo、DirectoryInfo、DriveInfo、FileSystemWatcher。本文介紹下這幾個類的用法。
      1.File類提供靜態方法用來創建、移動、復制、刪除文件的操作,并可以打開文件流
      2.Directory類提供靜態方法用來創建、移動、復制、刪除目錄的操作
      3.FileInfo類用類實例實現創建、復制、移動、刪除文件的操作
      4.DirectoryInfo提供創建、移動、復制、刪除目錄的操作,并可以枚舉子目錄
      5.DriveInfo可以獲得windows操作系統中的磁盤信息
      6.FileSystemWatcher用來監視文件或目錄變化,并引發事件
      7.Path類提供文件名目錄名操作的靜態方法
      File、FileInfo、Directory、DirectoryInfo這幾個類的使用方法都非常簡單就不做贅述了。
      1.如何使用DriveInfo獲得windows系統磁盤信息
      不允許在程序中自己構造DriveInfo的實例,可以通過DriveInfo的靜態方法GetDrives()獲得windows系統中所有的磁盤,包括硬盤,cd以及u盤;注意在訪問磁盤屬性時需要先判斷其IsReady屬性是否為true,IsReady為false時訪問磁盤的一些屬性時會拋出異常。如下實例代碼
      復制代碼 代碼如下:www.wf0088.com

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.IO;

      namespace aboutio
      {
      class Program
      {
      static void Main(string[] args)
      {
      DriveInfo[] drives = DriveInfo.GetDrives();

      foreach (DriveInfo drive in drives)
      {
      if(drive.IsReady)
      Console.WriteLine("類型:{0} 卷標:{1} 名稱:{2} 總空間:{3} 剩余空間:{4}",drive.DriveType, drive.VolumeLabel,drive.Name,drive.TotalSize,drive.TotalFreeSpace);
      else
      Console.WriteLine("類型:{0} is not ready",drive.DriveType);
      }

      Console.ReadLine();
      }
      }
      }

      2. 使用FileSystemWatcher監視目錄
      FileSystemWatcher用來監視目錄或者文件的修改,創建,刪除,要使FileSystemWatcher開始監視必須設置其EnableRaisingEvents屬性為true,如下示例:
      復制代碼 代碼如下:www.wf0088.com

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.IO;
      using System.Threading;

      namespace UseFileSystemWatcher
      {
      class Program
      {
      static void Main(string[] args)
      {
      //聲明要監視的目錄
      string watchPath = "D:\\watch";
      FileSystemWatcher watcher = new FileSystemWatcher(watchPath, "*.*");
      //添加文件變化處理事件
      watcher.Changed += new FileSystemEventHandler(Watcher_Changed);
      //添加文件創建處理事件
      watcher.Created += new FileSystemEventHandler(Watcher_Created);
      //添加文件刪除處理事件
      watcher.Deleted += new FileSystemEventHandler(Watcher_Deleted);
      //添加錯誤處理
      watcher.Error += new ErrorEventHandler(Watcher_Error);
      //啟動監視
      watcher.EnableRaisingEvents = true;
      Thread.Sleep(1000 * 60);
      Console.WriteLine("press any key to exit..");
      Console.Read();
      }

      static void Watcher_Error(object sender, ErrorEventArgs e)
      {
      Console.WriteLine("錯誤:" + e.ToString());
      }

      static void Watcher_Deleted(object sender, FileSystemEventArgs e)
      {
      Console.WriteLine(e.ChangeType + ":" + e.FullPath);
      }

      static void Watcher_Created(object sender, FileSystemEventArgs e)
      {
      Console.WriteLine(e.ChangeType + ":" + e.FullPath);
      }

      static void Watcher_Changed(object sender, FileSystemEventArgs e)
      {
      Console.WriteLine(e.ChangeType + ":" + e.FullPath);
      }
      }
      }

      3. Path 類提供了一組處理路徑的靜態方法
      1)Path.GetDirectoryName(string path) 返回目錄名,需要注意路徑末尾是否有反斜杠對結果是有影響的,如下:
      Path.GetDirectoryName("d:\\abc") 將返回 d:\
      Path.GetDirectoryName("d:\\abc\") 將返回 d:\abc
      2)Path.GetRandomFileName()將返回隨機的文件名
      3)Path. GetFileNameWithoutExtension(“d:\\abc.txt”) 將返回abc
      4)Path.GetInvalidPathChars() 將返回禁止在路徑中使用的字符
      5)Path. GetInvalidFileNameChars()將返回禁止在文件名中使用的字符
      6) Path.Combine(string left,string right)合并兩個路徑
      需要注意的是,以上提到的這幾個文件系統相關的類的底層都調用了windows的api,也就是說這些類只可以在windows系統下用,而在其他操作系統下是不可用的。

      分享:解析.Net 4.0 中委托delegate的使用詳解
      本篇文章是對.Net 4.0 中委托delegate的使用進行了詳細的分析介紹,需要的朋友參考下

      來源:模板無憂//所屬分類:.Net教程/更新時間:2013-05-19
      相關.Net教程