使用GetTempFileName函式
Windows API函式中的GetTempFileName函式可以用來在指定的磁碟驅動器上創建一個新的檔案。儘管所創建的檔案是一個臨時檔案, 但不再需要它的時候,程式設計師還是需要將它從磁碟上物理地刪除掉。
要在VB中使用GetTempFileName函式,必須將如下聲明語句包含在程式中(請注意該聲明語句需要書寫在一行內):
Private Declare Function GetTempFileName Lib"kernel32" A lias"GetTempFile NameA" (ByVal lpszPath As String, ByVal lpP refixString As String, ByVal wUni que As Long, ByVal lpTempF ileName As String) As Long
GetTempFileName函式需要4個參數
第一個參數是希望創建新檔案的驅動器和/或路徑的名稱,在下面 的樣例程式中,新檔案創建在驅動器C的根目錄下。
第二個參數是指派給檔案名稱稱的前綴。如果將該前綴指定為"TES T",則函式將把創建的新檔案名稱稱的前四個字元設定為"TEST",即"TES T*.TMP"。
第三個參數應該被設定為0,告訴該函式為檔案名稱稱自動產生隨機 號碼。該隨機號碼會被添加到前綴字元的後面,以產生一個獨特而且 完整的檔案名稱稱。
第四個參數是一個字元串快取,它至少要有256個字元的長度,以 存放臨時檔案的名稱。
在調用該函式之後,新檔案創建在指定的磁碟上。這裡重申一下, 當退出應用程式時,必須物理地將該檔案從磁碟上刪除。
樣例程式
該程式顯示了如何在VB應用程式中創建一個臨時檔案。
1.在Visual Basic中開始一個新的工程,採用預設的方法建立For m1。
2.將如下聲明語句添加到Form1的通用聲明部分中(請注意該聲明 語句需要被書寫在一行內):
Private Declare Function GetTempFileName Lib"kernel32" A lias"GetTempFile NameA"(ByVal lpszPath As String, ByVal lpPr efixString As String, ByVal wUniq ue As Long, ByVal lpTempFi leName As String) As Long
3.將如下代碼添加到Form1的Form_Load事件中:
Private Sub Form_Load()
Text1.TEXT = ""
End Sub
4.在Form1上添加一個文本框控制項,採用預設的方法建立Text1。
5.在For 鹹砑右桓雒?畎磁タ丶?採用預設的方法建立Comman d1。
6.將如下代碼添加到Command1的單擊事件中:
Private Sub Command1_Click()
Dim FilePrefix As String
Dim NewFile As String * 256
FilePrefix = "TEST"
NewFile = GetTempName(FilePrefix)
Text1.TEXT = NewFile
End Sub
7.創建一個新的名為GetTempName的函式,將如下代碼添加到該函 數中:
Private Function GetTempName(TmpFilePrefix As String) As String
Dim TempFileName As String * 256
Dim X As Long
Dim DriveName As String
DriveName = "c:"
X = GetTempFileName(DriveName, TmpFilePrefix, 0, TempFi leName)
GetTempName = Left$(TempFileName, InStr(TempFileName, Ch r(0)) - 1)
End Function
按下F5鍵,執行本樣例程式.單擊命令按鈕,在驅動器C的根目錄下創建一個新的臨時檔案.該新創建的檔案的名稱被顯示在文本框控制項中.