我的程序通过单击带有与我的程序相关联的扩展名的文件名,将输入文件名作为命令行参数,在拖放操作中或在资源管理器中接受。
命令行和拖放工作正常,但是在单击资源管理器中的文件名时,如果单击的文件的文件路径中包含空格,则会导致问题,例如:
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/