WinAPI: GetWindowsDirectory - 获取 Windows 所在目录
//声明:
GetWindowsDirectory(
lpBuffer: PChar; {缓冲区}
uSize: UINT {缓冲区大小}
): UINT; {返回实际长度}
//举例:
var
arr: array[0..MAX_PATH] of Char;
num: UINT;
begin
num := GetWindowsDirectory(arr, MAX_PATH);
ShowMessage(arr); {C:\WINDOWS}
ShowMessage(IntToStr(num)); {10}
end;
WinAPI: GetSystemDirectory - 返回 System 文件夹路径
//声明:
GetSystemDirectory(
lpBuffer: PChar; {缓冲区}
uSize: UINT {缓冲区大小}
): UINT; {返回实际长度}
//举例:
var
arr: array[0..MAX_PATH] of Char;
num: UINT;
begin
num := GetSystemDirectory(arr, MAX_PATH);
ShowMessage(arr); {C:\WINDOWS\system32}
ShowMessage(IntToStr(num)); {19}
end;
WinAPI: GetTempPath - 获取临时文件夹路径
//声明:
GetTempPath(
nBufferLength: DWORD; {缓冲区大小}
lpBuffer: PChar {缓冲区}
): DWORD; {返回实际长度}
//举例:
var
arr: array[0..MAX_PATH] of Char;
num: DWORD;
begin
num := GetTempPath(MAX_PATH, arr);
ShowMessage(arr); {C:\DOCUME~1\wy\LOCALS~1\Temp\}
ShowMessage(IntToStr(num)); {29}
end;
WinAPI: GetTempFileName - 生成一个临时文件名
//声明:
GetTempFileName(
lpPathName: PChar; {路径}
lpPrefixString: PChar; {前缀}
uUnique: UINT; {指定生成文件名的数字, 文件名将根据参数2、参数3来生成}
lpTempFileName: PChar {文件名需要的缓冲区}
): UINT; {指定生成文件名的数字, 如果参数3是0, 则返回文件名长度}
//举例:
var
p,f: array[0..MAX_PATH] of Char;
begin
GetTempPath(MAX_PATH, p);
GetTempFileName(p, '~My', 16, f); {因为16的十六进制是10, 文件名会是: ~My10.tmp}
ShowMessage(f); {C:\DOCUME~1\wy\LOCALS~1\Temp\~My10.tmp}
end;
WinAPI: CopyFile - 复制文件
//声明:
CopyFile(
lpExistingFileName: PChar; {源文件}
lpNewFileName: PChar; {目标文件}
bFailIfExists: BOOL {如果目标文件存在, True: 失败; False: 覆盖}
): BOOL;
//例1:
begin
CopyFile('c:\BOOTLOG.TXT', 'c:\temp\BOOTLOG.TXT', True);
end;
//例2:
var
ExistFile, NewFile: string;
begin
ExistFile := 'c:\BOOTLOG.TXT';
NewFile := 'c:\temp\BOOTLOG.TXT';
if CopyFile(PChar(ExistFile), PChar(NewFile), True) then
ShowMessage('复制成功');
end;