如何在Delphi中更改当前文件夹?

5
如何在Delphi中更改进程的当前文件夹?

2
http://docwiki.embarcadero.com/CodeExamples/XE5/en/ChDir_(Delphi) - bummi
2个回答

6
两种方法都可行:ChDirSetCurrentDir。它们都使用相同的Windows API调用:SetCurrentDirectory
如果使用ChDir,则在该目录不存在时会引发异常(在{$I+}模式下)。因此,在这种情况下您需要使用tryexcept处理异常。
如果使用SetCurrentDir,如果目录不存在,则返回false,如果成功则返回true
考虑到SetCurrentDir是更新的内容,而ChDir是相当老的遗留物(来自DOS时代),因此前者更受欢迎,并且易于使用。

如果你想要一个自定义的错误消息在失败时,我肯定会选择“SetCurrentDir”。通常情况下,我会避免使用try..finally来显示“定制”的错误消息。 - Andreas Rejbrand
ChDir 是传统的 Pascal 语言,类似于老式的 Pascal I/O。只有在 $I+ 模式下才会引发异常。 - David Heffernan
@AndreasRejbrand,无论哪种情况都允许您使用自定义错误消息。然而,使用SetCurrentDir肯定更加简洁,也可能更可取。这是一个较新的调用。ChDir可以追溯到DOS Pascal时代。 - lurker

5

SysUtils 单元调用 SetCurrentDir 函数。

请注意,当前目录不是系统属性,而是进程的属性。每个进程都有自己的当前目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接