这个函数适用于 iOS、Android、Windows、OSX,但仅适用于 Delphi/C++ Builder,对别的语言没多大的参考价值。当然,也不能说真的没有,有兴趣的可以朋友可以参考 Delphi 中的 System.pas 单元的源码,然后再加以改造并参考本部分的代码一样可以实现跨平台的获取应用程序根目录及文件名的方法。
//使用全局变量缓存应用的文件名和路径,提高多次调用时效率,这几个值反正也不会变 var _AppFileName,_AppPath:String; function AppFileName: String; inline; begin if Length(_AppFileName) = 0 then begin {$IFDEF ANDROID} _AppFileName := JStringToString(SharedApplicationInfo.processName); {$ELSE} _AppFileName := ParamStr(0); {$ENDIF} end; Result := _AppFileName; end; function AppPath: String; // inline; begin if Length(_AppPath) = 0 then begin {$IFDEF ANDROID} _AppPath := JStringToString(SharedApplicationInfo.dataDir); {$ELSE} _AppPath := ExtractFilePath(AppFileName); {$ENDIF} end; Result := _AppPath; end;