文件名中含有逗号、引号、问号、书名号,如何打开pdf文件?

xiongdingfu 2017-11-25 10:03:36
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI,StrUtils;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
if OpenDialog1.Execute then
begin
s:=OpenDialog1.FileName;
end;

//处理文件路径中带问号,逗号
s:=AnsiReplaceText(s,'?','"?"');//问号
s:=AnsiReplaceText(s,',','","');//逗号
s:=AnsiReplaceText(s,',','","');//逗号

s:='"'+s+'"';//处理带空格的情况
ShellExecute(0, 'open', 'AcroRd32.exe', PChar(s), '', SW_SHOWMAXIMIZED);

end;

end.

为什么程序运行之后会出现下面的错误?

...全文
1753 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2017-11-27
  • 打赏
  • 举报
回复

procedure TForm1.Button2Click(Sender: TObject);
var  s:string;
begin
  if OpenDialog1.Execute then
  begin
  ShellExecute(0, 'open', 'AcroRd32.exe', PChar(OpenDialog1.FileName), '', SW_SHOWMAXIMIZED);
  END;
end;
lyhoo163 2017-11-27
  • 打赏
  • 举报
回复
1、保存文件时,尽可能地在文件名中,不要使用特殊字符; 2、文件名已经有(汉字双字节)符号,时直接用原文件名可以打开。 你的问题是,打开文件时,将原文件名中的双字节的符号,换成单字符的符号。修改了文件名。出现打开一个不存在的文件错误。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧