国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在托管C++中利用path對象處理Temp文件

2019-11-17 05:49:06
字體:
來源:轉載
供稿:網友

  程序中有時避免不了要使用臨時文件,但在微軟的.NET新平臺中,許多編程者還未利用Path對象的便利條件來處理臨時文件,仍然手工確定應用程序當前目錄中的唯一文件名,并在程序用完之后刪除。

  本文要演示的技巧,是通過使用Path類,以一兩行的代碼,就可完成下述任務:

  1、 定位"temp"目錄。

  2、 創建唯一的、優化過的臨時文件。

  3、 使用完后刪除臨時文件。

  定位"Temp"目錄

  要確定"temp"目錄,可使用Path::GetTempPath靜態方法,此處重點要注重的是,需把對此方法的調用,放在一個try/block塊中,因為基于當前用戶的權限,很可能會拋出一個SecurityException(安全異常)。

using namespace System::Security;
using namespace System::IO;

...

String tempFolder;
try
{
 tempFolder = Path::GetTempPath();
}
catch(SecurityException* ex)
{
 //很可能意味著你沒有所需的權限
}
catch(Exception* ex)
{
 //處理其他所有異常
}
  創建并優化臨時文件

  在此可使用Path::GetTempFileName來得到臨時文件的唯一名稱,這個方法會創建一個文件,并返回最近創建的文件名。

  文件屬性被設為"存檔",實質上為了防止 .NET對它進行優化,因此,假如把文件屬性改為其他的,就可以從 .NET運行時(runtime)緩存中得到一小點的性能提升。

  一開始,要使用臨時文件名來構造一個FileInfo對象,并設置FileInfo的Attributes為FileAttributes::Temporary:

using namespace System::Security;
using namespace System::IO;

...

String* fileName;
fileName->Empty;

try
{
 //創建一個長度為零的臨時文件
 fileName = Path::GetTempFileName();

 //把文件屬性設為"Temporary"以獲得更好的性能
 FileInfo* myFileInfo = new FileInfo(fileName);
 myFileInfo->Attributes = FileAttributes::Temporary;

 ...
}
catch(Exception* ex)
{
 //處理異常
}
  使用及刪除臨時文件

  一旦創建了臨時文件,就可像使用其他文件一樣使用它,例如,可在上面的try/block塊中插入以下代碼,其使用了StreamWriter類在臨時文件中寫入一條簡單的字符串:

//向臨時文件中寫入數據
StreamWriter* writer = File::AppendText(fileName);
writer->WriteLine("A test sample data");
writer->Flush();
writer->Close();
  寫入的數據可通過下面的StreamReader讀取,在此,可把整個文件的內容都讀入到一個String對象中:

StreamReader* reader = File::OpenText(fileName);
  最后,在使用完了臨時文件,可用File::Delete來刪除,只需簡單地傳遞進文件名就行了:

File::Delete(fileName);進入討論組討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 勐海县| 黄冈市| 广元市| 兰溪市| 南丰县| 榕江县| 天等县| 通渭县| 邯郸市| 萨迦县| 定兴县| 旅游| 桃源县| 驻马店市| 洛隆县| 泾川县| 读书| 兴仁县| 金川县| 铜鼓县| 慈溪市| 色达县| 都安| 庆云县| 达拉特旗| 涞水县| 西青区| 林西县| 麻城市| 于都县| 张家界市| 南雄市| 锦州市| 南投市| 罗平县| 淮南市| 信阳市| 万安县| 金乡县| 抚州市| 肇源县|