gpt4 book ai didi

delphi - 为什么ParamStr显示错误的文件名?

转载 作者:行者123 更新时间:2023-12-03 18:52:58 25 4
gpt4 key购买 nike

我已经将“ .file_5”扩展名与我的应用程序相关联,当我使用以下代码在资源管理器中双击该文件时,我使用了Delphi中的ParamStr(1)函数来显示一个包含文件路径和文件名的消息框。

procedure TForm1.FormCreate(Sender: TObject);
var
TheFile : string;
begin
TheFile := ParamStr(1); //filename for the file that was loaded
ShowMessage(TheFile);
end;


此方法有效,但是如果我将文件移动到另一个位置,则该文件原来所在的位置,则显示的消息不正确。

示例:(使用test.file_5)

该文件的原始位置在C:\驱动器中,当我双击它时,我的应用程序启动并显示一个消息框,其中显示:


C:\ test.file_5


这是对的。例如,如果我将同一文件移动到包含诸如程序文件文件夹之类的空格的目录,则不会显示所显示的Messagbox


C:\ Program Files \ test.file_5


就像我期望的那样


C:\ PROGRA〜1.FILE_


这显然不是我要获取的信息,所以我的问题是我该如何使用ParamStr()函数来考虑其中包含空格的目录,还是应该使用一个更好的函数来处理包含空格的目录?他们。

最佳答案

您的关联设置错误。不用双击.file_5做

C:\YourPath\YourApp.exe %1


关联应设置为

"C:\YourPathYourApp.exe" "%1"


请注意%1周围的双引号-这将保留所有空格,而不是使Windows传递短路径和文件名。

关于delphi - 为什么ParamStr显示错误的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4084412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com