GetShortPathName

函式GetShortPathName獲取指定路徑的短路徑形式。該API不適合對畸形資料夾進行操作。

基本介紹

  • 中文名:GetShortPathName
  • 性質:函式
  • 詞性:名詞
  • 版本:VB版,Delphi版,C++版
VB版,Delphi版,C++版,PB版,

VB版

Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathName" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
說明
獲取指定檔案的短路徑名
返回值
Long,裝載到lpszShortPath緩衝區的字元數量。如lpszShortPath的長度不足,不能容下檔案名稱,就返回需要的緩衝區長度
參數表
參數 類型及說明
lpszLongPath String,指定欲獲取短路徑名的那個檔案的名字。可以是個完整路徑,或者由當前目錄決定
lpszShortPath String,指定一個緩衝區,用於裝載檔案的短路徑和檔案名稱
cchBuffer Long,lpszShortPath緩衝區長度

Delphi版

Function GetShortPathName(lpszLongPath:PChar,lpszShortPath:PChar,cchBuffer:Cardinal):Cardinal
lpszLongPath 長檔案名稱,原來的字元串
lpszShortPath 短檔案名稱,我們想要的結果
cchBuffer 緩衝區長度
舉個例子:
S := ParamStr(1);
GetShortPathName(PChar(S),PChar(S),Length(S));
將程式啟動時得到的S值(一個長檔案名稱),變為一個短檔案名稱,並且還是將S的值改變為該短檔案名稱。
但是,在實際使用中,字元串的最後幾位會返回一些奇怪的字元,例如 #0'EX' 等等,我用的方法是:
for I := Length(S) downto Length(S)-2 do
Runaim:= #32;
#32在Delphi中為空格。具體可以參見常用字元與ASCII代碼對照表。

C++版

DWORD WINAPI GetShortPathName(
LPCTSTR lpszLongPath, //指定的要轉換的路徑
LPTSTR lpszShortPath, //接收短路徑形式的緩衝區
DWORD cchBuffer//緩衝區的長度
);
函式說明:
獲取指定路徑的短路徑形式
返回值:
如果執行成功,則返回lpszShortPath接收的字元串的長度,不包括空字元;如果lpszShortPath長度太小,則返回lpszShortPath接收短路徑字元串需要的長度,包括空字元;如果其他原因導致失敗,則返回0,通過GetLastError()獲取出錯信息

PB版

Function Long GetShortPathName (String lpszLongPath ,ref String lpszShortPath , Long cchBuffer ) library "kernel32.dll" alias for "GetShortPathNameA"

相關詞條

熱門詞條

聯絡我們