UINT GetSystemDirectory( //得到當前系統目录(System目录)的完整路径名
LPTSTR lpBuffer, // 用于裝載系統目錄路徑名的一個緩沖區
UINT uSize // lpBuffer字串的最大長度
); //返回值為:裝載到lpBuffer緩沖區的字符數量,如果lpBuffer不夠大,不夠容納路徑名,則返回要求的緩沖區長度,零表示失敗。
UINT GetWindowsDirectory( //得到當前系統目录(Windows目录)的完整路径名LPTSTR lpBuffer, // 用于裝載系統目錄路徑名的一個緩沖區
UINT uSize // lpBuffer字串的最大長度
); //返回值為:裝載到lpBuffer緩沖區的字符數量,如果lpBuffer不夠大,不夠容納路徑名,則返回要求的緩沖區長度,零表示失敗。
DWORD GetCurrentDirectory( //得到當前目錄路徑
DWORD nBufferLength, // lpBuffer字串的長度
LPTSTR lpBuffer // 指向裝載當前目錄路徑名的一個緩沖區
); //返回值為:裝載到lpBuffer緩沖區的字符數量,如果lpBuffer不夠大,不夠容納路徑名,則返回要求的緩沖區長度,零表示失敗。
DWORD GetFullPathName( // 由一個指定的文件名字得到文件的路徑
LPCTSTR lpFileName, // 指定文件的名字
DWORD nBufferLength, // 緩沖區大小
LPTSTR lpBuffer, // 存取路徑的緩沖區
LPTSTR *lpFilePart // 要求文件名的起始地址
); //返回:返回實際路徑的長度,如果緩沖區太小就返回緩沖區的值,失敗就返回零(一般就是在文件名之前補上當前目錄路徑,如果當前文件名已經包含完整目錄就是直接返回)
//對比Delphi中相關
procedure GetDir(D: Byte; var S: string) ; //將在D設置條件下的當前路徑保存到S中
function GetCurrentDir: string; //得到當前目錄路徑
function ExtractFilePath(const FileName: string): string; //返回當前文件的目錄名
function ExtractFileDir(const FileName: string): string; //返回當前文件的目錄名(與上不同點就是:該過程有時返回的路徑名一般沒有最后的路徑分隔符‘\’(像C:\aa.txt這種情況兩者相同除外),而ExtractFilePath總會有。)
function ExtractFileDrive(const FileName: string): string;//返回指定文件所在盤符
function ExpandFileName(const FileName: string): string;//由FileName返回全路徑
{Delphi Example}
var
pPath2: string;
i,Code: Integer;
FName: PChar;
Buffer: array[0..MAX_PATH - 1] of Char;
begin
pPath2 := 'qq.txt';
// GetSystemDirectory
Code := GetSystemDirectory(Buffer,SizeOf(Buffer));
ShowMessage('Buffer為:'+Buffer + '返回為:' + IntToStr(Code)); //Buffer為:C:\WINDOWS\system32 返回為:19
// GetWindowsDirectory
Code := GetWindowsDirectory(Buffer,SizeOf(Buffer));
ShowMessage('Buffer為'+Buffer + '返回為' + IntToStr(Code)); //Buffer為:C:\WINDOWS 返回為:10
// GetCurrentDirectory
Code := GetCurrentDirectory(SizeOf(Buffer),Buffer);
ShowMessage('Buffer為'+Buffer + '返回為' + IntToStr(Code));//Buffer為:C:\Documents and Settings\adm\ 返回為:30
// GetFullPathName
Code := GetFullPathName(PChar(pPath2), SizeOf(Buffer),Buffer, FName);
ShowMessage('Buffer為'+Buffer + '返回為' + IntToStr(Code));//Buffer為:C:\Documents and Settings\adm\ qq.txt返回為:36
end;