如何從短檔名取得長檔名

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

154822
本文已封存。本文係以「現狀」提供且不會再更新。
結論
Dir() 函式可以用來傳回長檔名,但它不包含路徑資訊。藉由剖析檔案指定短路徑/名稱到其組成的目錄,您可以使用 Dir() 函數,來建置一個長路徑/檔案名稱。本文將告訴您,如何完成這項行為。
其他相關資訊
下列程式碼範例也包含函式,將轉換成其等價的長檔名的短檔名,並且還包括簡單示範的函式的使用。

雖說是逐步範例

  1. 啟動 Visual Basic。預設會建立 Form1。
  2. 將命令按鈕至 Form1。
  3. 從 [插入] 功能表中,選取模組將單一的程式碼模組加入至專案。
  4. 將下列程式碼加入 Module1:
       Public Function GetLongFilename _     (ByVal sShortName As String) _     As String     Dim sLongName As String     Dim sTemp As String     Dim iSlashPos As Integer     'Add \ to short name to prevent Instr from failing     sShortName = sShortName & "\"     'Start from 4 to ignore the "[Drive Letter]:\" characters     iSlashPos = InStr(4, sShortName, "\")     'Pull out each string between \ character for conversion     While iSlashPos       sTemp = Dir(Left$(sShortName, iSlashPos - 1), _         vbNormal + vbHidden +    vbSystem + vbDirectory)       If sTemp = "" Then         'Error 52 - Bad File Name or Number         GetLongFilename = ""         Exit Function       End If       sLongName = sLongName & "\" & sTemp       iSlashPos = InStr(iSlashPos + 1, sShortName, "\")     Wend     'Prefix with the drive letter     GetLongFilename = Left$(sShortName, 2) & sLongName   End Function					
  5. 將下列程式碼加入至 Command1_Click 事件:
       Private Sub Command1_Click()     'Assumes C:\Program Files\Common Files is a valid path     Print GetLongFilename("C:\PROGRA~1\COMMON~1")   End Sub					
  6. 選擇 [開始],請從 [執行] 功能表或按 F5 鍵以開始。
  7. 按一下 [命令] 按鈕。
如果您提供的路徑是有效的長的對等用法會列印在表單上。如果它不是有效,執行任何動作就會列印,在這種情況下,您就需要提供有效的短檔名 Command1_Click 事件程式碼中。
kbVBp400 vkbVBp500bug kbVBp600bug kbVBp kbdsd kbDSupport KBWIN32SDK KBAPI

警告:本文已自動翻譯

內容

文章識別碼:154822 - 最後檢閱時間:03/01/2014 15:23:26 - 修訂: 4.1

  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • kbnosurvey kbarchive kbmt kbhowto KB154822 KbMtzh
意見反應