我的程序通过单击带有与我的程序相关联的扩展名的文件名,将输入文件名作为命令行参数,在拖放操作中或在资源管理器中接受。

命令行和拖放工作正常,但是在单击资源管理器中的文件名时,如果单击的文件的文件路径中包含空格,则会导致问题,例如:

c:\temp\file one.txt
c:\my directory\filetwo.txt
c:\my directory\file three.txt

然后,ParamStr函数会给我返回:
ParamStr(1):  c:\temp\file
ParamStr(2):  one.txt
ParamStr(3):  c:\my
ParamStr(4):  directory\filetwo.txt
ParamStr(5):  c:\my
ParamStr(6):  directory\file
ParamStr(7):  three.txt

如何最好地将它们重新构造成我需要的三个文件名?

最佳答案

可能是您的Shell文件关联中不包含“”对。

像这些打开一样:

"C:\Program Files\WinRAR\WinRAR.exe" "%1"

或带有DDE消息:
[open("%1")]

关于delphi - 如何在Delphi中使用空格处理参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3605153/

10-13 01:28