我用ForceDirectories
功能是这样的:ForceDirectories返回False
ForceDirectories('C:/Path/To/Dir');
,并返回False
并创建完全没有目录。 GetLastError
返回0.我正在运行具有管理权限的程序。
如果我做
ForceDirectories('C:/Path');
ForceDirectories('C:/Path/To');
ForceDirectories('C:/Path/To/Dir');
每次调用成功,并创建目录。但是,这会使ForceDirectories
函数的有用性无效。有谁知道它为什么这样表现? (我正在看你大卫)
其实/和\是Windows的有效路径分隔符。 – Kokonotsu
...但只有后者是“正常的”。 –
在这种情况下,“对于你的平台是正确的”意思是“正确的由Delphi RTL标识”,因为ForceDirectories()不直接调用任何Windows API来创建路径,而是调用CreateDir来为总路径中的每个连续元素存在。为了识别路径元素,它使用“PathDelim”打破了路径,当编译器定义MSWINDOWS时,它被设置为'\'。因此,对于Win32上的ForceDirectories,正确的路径分隔符是'\'。 – Deltics