淺談FileSteam
今天一開始要跟各位分享一件開心的事情,就是我申請成為藍色小舖asp.net,C#兩個討論版的版主終於審核通過了,可喜可賀可喜可賀~還請各位多多關照囉 :)
曾經有個case讓我使用到大量的資料夾操作,當時隨手將一些方法做了筆記,無意間發現了這些資料,整理過後放上來給大家參考。
開啟資料
這是使用FILESTREAM開啟文件夾的典型範例 ,重要的是要始終關閉stream。如果你不關閉它可能會需要一分鐘之後才能再次開啟文件(它將等待garbage collector釋放FileStream,並關閉該文件)。
FileStream fileStream = new FileStream(@"c:\test1.txt", FileMode.Open);
try
{
// read from file or write to file
}
finally
{
fileStream.Close();
}
接下來是上述方法的其它用途:
- 開起來讀:
- 開起來寫:
- 創建資料:
從目錄讀取資料
首先也是從目錄get files下手
string[] filePaths = Directory.GetFiles(@"c:\SHINYO\");
再來是關鍵字的方法,可以用*.jpg搜尋以其為副檔名之資料,也可以用a*搜尋以A為檔名開頭之資料.
最後是更狠的連根目錄都一起找出來吧!!
刪除所有資料
首先還是要從上述方法找到目錄資料之後,刪除該資料清單。
string[] filePaths = Directory.GetFiles(@"c:\SHINYO\");
foreach (string filePath in filePaths)
File.Delete(filePath);
獲得資料時間
得知資料的特定時間資訊如:最後修改時間(GetLastWriteTime)...等,之類的方法。
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來達成簡化的目的:
// 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
|