教你如何創(chuàng)建VB.NET臨時文件七步總結(jié)
經(jīng)過長時間的運用VB.NET編程,在工作中也積累了一些經(jīng)驗,在這里主要和大家介紹如何創(chuàng)建VB.NET臨時文件。
使用GetTempFileName函數(shù)
#T#WindowsAPI函數(shù)中的GetTempFileName函數(shù)可以用來在指定的磁盤驅(qū)動器上創(chuàng)建一個新的文件。盡管所創(chuàng)建的文件是一個臨時文件,但不再需要它的時候,程序員還是需要將它從磁盤上物理地刪除掉。
要在VB中使用GetTempFileName函數(shù),必須將如下聲明語句包含在程序中(請注意該聲明語句需要書寫在一行內(nèi)):
- PrivateDeclareFunctionGetTempFileNameLib"kernel32"Alias"GetTempFileNameA"(ByVallpszPathAsString,ByVallpPrefixStringAsString,
- ByValwUniqueAsLong,ByVallpTempFileNameAsString)AsLong
該GetTempFileName函數(shù)需要4個參數(shù):
***個參數(shù)是希望創(chuàng)建新文件的驅(qū)動器和/或路徑的名稱,在下面的樣例程序中,新文件創(chuàng)建在驅(qū)動器C的根目錄下。
第二個參數(shù)是指派給文件名稱的前綴。如果將該前綴指定為"TEST",則函數(shù)將把創(chuàng)建的新文件名稱的前四個字符設置為"TEST",即"TEST*.TMP"。
第三個參數(shù)應該被設置為0,告訴該函數(shù)為文件名稱自動產(chǎn)生隨機號碼。該隨機號碼會被添加到前綴字符的后面,以產(chǎn)生一個獨特而且完整的文件名稱。
第四個參數(shù)是一個字符串緩存,它至少要有256個字符的長度,以存放臨時文件的名稱。
在調(diào)用該函數(shù)之后,新文件創(chuàng)建在指定的磁盤上。這里重申一下,當退出應用程序時,必須物理地將該文件從磁盤上刪除,樣例程序。
該程序顯示了如何創(chuàng)建VB.NET臨時文件
1.在VisualBasic中開始一個新的工程,采用缺省的方法建立Form1。
2.將如下聲明語句添加到Form1的通用聲明部分中(請注意該聲明語句需要被書寫在一行內(nèi)):
- PrivateDeclareFunctionGetTempFileNameLib"kernel32"Alias"GetTempFileNameA"
- (ByVallpszPathAsString,ByVallpPrefixStringAsString,ByValwUniqueAsLong,ByVallpTempFileNameAsString)AsLong
3.將如下代碼添加到Form1的Form_Load事件中:
- PrivateSubForm_Load()
- Text1.TEXT=""
- EndSub
4.在Form1上添加一個文本框控件,采用缺省的方法建立Text1。
5.在Form1上添加一個命令按鈕控件,采筆〉姆椒ńommand1。
6.將如下代碼添加到Command1的單擊事件中:
- PrivateSubCommand1_Click()
- DimFilePrefixAsString
- DimNewFileAsString*256
- FilePrefix="TEST"
- NewFile=GetTempName(FilePrefix)
- Text1.TEXT=NewFile
- EndSub
7.創(chuàng)建一個新的名為GetTempName的函數(shù),將如下代碼添加到該函數(shù)中:
- PrivateFunctionGetTempName(TmpFilePrefixAsString)AsString
- DimTempFileNameAsString*256
- DimXAsLong
- DimDriveNameAsString
- DriveName="c:"
- X=GetTempFileName(DriveName,TmpFilePrefix,0,TempFileName)
- GetTempName=Left$(TempFileName,InStr(TempFileName,Chr(0))-1)
- EndFunction
按下F5鍵,執(zhí)行本樣例程序。單擊命令按鈕,在驅(qū)動器C的根目錄下創(chuàng)建一個新的臨時文件。該新創(chuàng)建的文件的名稱被顯示在文本框控件中,以上就是如何創(chuàng)建VB.NET臨時文件的過程,大家學會了嗎?