unit xPath; interface uses ShlwApi, Windows, SysUtils; /// <summary> /// 取绝对路径的函数。需要引用 ShlwApi.pas /// </summary> /// <param name="BasePath">参考路径</param> /// <param name="RelativePath">相对路径</param> /// <code> /// S := GetAbsolutePath(‘C:\Windows\System32‘, ‘..\DEMO.TXT‘) // S 将得到 ‘C:\Windows\DEMO.TXT /// </code> function GetAbsolutePathEx(BasePath, RelativePath:string):string; /// <summary> /// 取得本身程序的路径 /// </summary> function AppPath : string; function GetRelativePath(const Path, AFile: string): string; implementation function GetAbsolutePathEx(BasePath, RelativePath:string):string; var Dest:array [0..MAX_PATH] of char; begin FillChar(Dest,MAX_PATH+1,0); PathCombine(Dest,PChar(BasePath), PChar(RelativePath)); Result:=string(Dest); end; function GetRelativePath(const Path, AFile: string): string; function GetAttr(IsDir: Boolean): DWORD; begin if IsDir then Result := FILE_ATTRIBUTE_DIRECTORY else Result := FILE_ATTRIBUTE_NORMAL; end; var p: array[0..MAX_PATH] of Char; begin PathRelativePathTo(p, PChar(Path), GetAttr(False), PChar(AFile), GetAttr(True)); Result := StrPas(p); end; function AppPath : string; begin Result := extractFilePath(Paramstr(0)); end; end. { ExpandFileName() 返回文件的全路径(含驱动器、路径) ExtractFileExt() 从文件名中抽取扩展名 ExtractFileName() 从文件名中抽取不含路径的文件名 ExtractFilePath() 从文件名中抽取路径名 ExtractFileDir() 从文件名中抽取目录名 ExtractFileDrive() 从文件名中抽取驱动器名 ChangeFileExt() 改变文件的扩展名 ExpandUNCFileName() 返回含有网络驱动器的文件全路径 ExtractRelativePath() 从文件名中抽取相对路径信息 ExtractShortPathName() 把文件名转化为DOS的8·3格式 MatchesMask() 检查文件是否与指定的文件名格式匹配 ExtractFilePath(FileName:String) 该函数返回路径名,其结尾字符总是“\” ExtractFileDir(FileName:String) }
时间: 2024-10-10 15:24:45