[C#]關於FileStream的一些使用與操作

淺談FileSteam

今天一開始要跟各位分享一件開心的事情,就是我申請成為藍色小舖asp.net,C#兩個討論版的版主終於審核通過了,可喜可賀可喜可賀~還請各位多多關照囉 :)

曾經有個case讓我使用到大量的資料夾操作,當時隨手將一些方法做了筆記,無意間發現了這些資料,整理過後放上來給大家參考。

開啟資料

這是使用FILESTREAM開啟文件夾的典型範例 ,重要的是要始終關閉stream。如果你不關閉它可能會需要一分鐘之後才能再次開啟文件(它將等待garbage collector釋放FileStream,並關閉該文件)。

 

using System.IO;

FileStream fileStream = new FileStream(@"c:\test1.txt", FileMode.Open);
try
{
  // read from file or write to file
}

finally
{
  fileStream.Close();
}

 

接下來是上述方法的其它用途:

  • 開起來讀:

 

FileStream fileStream = new FileStream(@"c:\test1.txt", FileMode.Open, FileAccess.Read);

 

  • 開起來寫:

 

FileStream fileStream = new FileStream(@"c:\test1.txt", FileMode.Open, FileAccess.Write);

 

  • 創建資料:

 

FileStream fileStream = new FileStream(@"c:\test1.txt", FileMode.Create);

 

 

從目錄讀取資料

 

 首先也是從目錄get files下手

using System.IO;

string[] filePaths = Directory.GetFiles(@"c:\SHINYO\");

 

再來是關鍵字的方法,可以用*.jpg搜尋以其為副檔名之資料,也可以用a*搜尋以A為檔名開頭之資料.

string[] filePaths = Directory.GetFiles(@"c:\SHINYO\", "*.bmp");

 

最後是更狠的連根目錄都一起找出來吧!!

 

string[] filePaths = Directory.GetFiles(@"c:\SHINYO\", "*.bmp",SearchOption.AllDirectories);

 

刪除所有資料

首先還是要從上述方法找到目錄資料之後,刪除該資料清單。

using System.IO;

string[] filePaths = Directory.GetFiles(@"c:\SHINYO\");
foreach (string filePath in filePaths)
  File.Delete(filePath);

 

獲得資料時間

得知資料的特定時間資訊如:最後修改時間(GetLastWri­teTime)...等,之類的方法。

 

// local  
DateTime creationTime = File.GetCreationTime(@"c:\AA.txt");
DateTime lastWriteTime = File.GetLastWriteTime(@"c:\AA.txt");
DateTime lastAccessTime = File.GetLastAccessTime(@"c:\AA.txt");

// UTC  
DateTime creationTimeUtc = File.GetCreationTimeUtc(@"c:\AA.txt");
DateTime lastWriteTimeUtc = File.GetLastWriteTimeUtc(@"c:\AA.txt");
DateTime lastAccessTimeUtc = File.GetLastAccessTimeUtc(@"c:\AA.txt");

// write time ( Local / UTC)
Console.WriteLine(lastWriteTime);      
Console.WriteLine(lastWriteTimeUtc);  

 

為了精簡程式,可以使用FileInfo Class來達成簡化的目的:

 

FileInfo fileInfo = new FileInfo(@"c:\AA.txt");

// local  
DateTime creationTime = fileInfo.CreationTime;
DateTime lastWriteTime = fileInfo.LastWriteTime;
DateTime lastAccessTime = fileInfo.LastAccessTime;

// UTC  
DateTime creationTimeUtc = fileInfo.CreationTimeUtc;
DateTime lastWriteTimeUtc = fileInfo.LastWriteTimeUtc;
DateTime lastAccessTimeUtc = fileInfo.LastAccessTimeUtc;

// write  time ( Local / UTC)
Console.WriteLine(lastWriteTime);      
Console.WriteLine(lastWriteTimeUtc);  

 

 

 

差不多就這些了,還可以去我之前PO的文章去看,一個基本的操作實例。

最後附上學習文件:

MSDN StreamReader Class : http://msdn.microsoft.com/en-us/library/6aetdk20.aspx

MSDN Process.Start Method : http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

 MSDN FileAccess Enumeration : http://msdn.microsoft.com/en-us/library/4z36sx0f.aspx

MSDN Directory.GetFiles Method : http://msdn.microsoft.com/en-us/library/system.io.directory.getfiles.aspx

Array.ForEach<T> Method : http://msdn.microsoft.com/en-us/library/zecdkyw2.aspx

 

分享


站作網站設計工作室 SiteMak Studio
Shinyo Ho 
Founder / Developer
email:shinyo.her@gmail.com|web:www.sitemak.com.tw