File 如何创建/移动文件到与程序相同的目录?

File 如何创建/移动文件到与程序相同的目录?,file,pascal,lazarus,File,Pascal,Lazarus,我正在macbook上使用lazarus,并试图创建一个与程序所在目录相同的文件 我试过了 AssignFile(ReportData, GetCurrentDir + FILENAME); 但它返回的权限被拒绝,所以我通过执行以下操作检查了它当前所在的路径 writeln( GetCurrentDir ); 结果是它使用了我的主文件夹而不是程序的目录。有没有办法将目录设置为程序所在的目录?因为我将把程序移到另一台计算机上,并且其他计算机上不存在该目录。这里有一些问题。运行程序的用户可能无法

我正在macbook上使用lazarus,并试图创建一个与程序所在目录相同的文件

我试过了

AssignFile(ReportData, GetCurrentDir + FILENAME);
但它返回的权限被拒绝,所以我通过执行以下操作检查了它当前所在的路径

writeln( GetCurrentDir );

结果是它使用了我的主文件夹而不是程序的目录。有没有办法将目录设置为程序所在的目录?因为我将把程序移到另一台计算机上,并且其他计算机上不存在该目录。

这里有一些问题。运行程序的用户可能无法访问程序所在的目录。当前目录没有理由与可执行文件所在的目录相同。回到绘图板上,我想。除了David所说的,如果您看到一条“权限被拒绝”的消息,并且
GetCurrentDir
返回您的主目录,那么还有其他问题。我怀疑
GetCurrentDir
可能不会对目录名应用终止“\”,因此
GetCurrentDir+FILENAME
不会提供您认为它提供给您的信息。它可能试图在你家上方写一个你无权写的目录。如果需要程序本身的路径,可以尝试使用
ParamStr(0)
并删除可执行文件名。但是你也可能没有得到允许。@潜伏者你说得对!但是现在ParamStr(0)也包含了该程序,即“/Users/username/Desktop/ProgramName”,有没有排除该程序名的方法?尝试使用/inspect
application.exename
(它的extractfiledir())。