J
jiichen
Unregistered / Unconfirmed
GUEST, unregistred user!
<br> ShFileOperation 是呼叫 Windows 的 API 来工作,但不知<br>是否还有其他的可呼叫。<br><br> 因为在我的档案中,有一档名为简体字码的档案,当初用 IE <br>去大陆网站存档时未注意到,于是,现在变成使用 TOpenDialog <br>可看见此档(十年江湖一盏灯.txt),而要将它读进来时却发生错误,<br>追踪结果, OpenDialog1.FileName=十年江湖一??.txt<br>故想呼叫 ShFileOperation 这个 API 并使用 RENAME 的语法,<br>将它改成其他名称,以便读取,试验其他档很顺利,但针对此档便<br>不行了。<br><br> 是不是此 API 不支援 UniCode 的关系呢?<br>但 OpenDialog 可看见全貌,是否表示另有其他组 API 可供呼叫?<br><br><br><br>PS:使用了 Windows 下最初阶的记事本,.....,真不可思议,<br>局然可以成功读进!!<br><br>而使用 UltraEdit v7.10 却不行(开启档案对话框依然可见全貌)。<br><br>请高手指教,谢谢!<br><br>使用系统:繁体 Windows2000 、 Delphi 5 (English)<br><br><br><br>以下为程式<br>var<br> ST:TShFileOpStruct;<br> frombuf, tobuf: Array [0..256] of Char;<br>begin<br> fillchar(ST, sizeof(TShFileOpStruct), 0);<br> FillChar( frombuf, Sizeof(frombuf), 0 );<br> FillChar( tobuf, Sizeof(tobuf), 0 );<br> StrPCopy( frombuf, Olds );<br> StrPCopy( tobuf, NewS );<br> <br> <br> with ST do<br> begin<br> Wnd:=PreLoad.Handle;<br> wFunc:=FO_RENAME;<br> pFrom:= @frombuf;<br> pTo:=@tobuf;<br> fFlags:=FOF_NOCONFIRMATION;<br> fAnyOperationsAborted:= False;<br> hNameMappings:= Nil;<br> lpszProgressTitle:= Nil;<br> end;<br> <br> ShFileOperation(ST); //执行命令<br><br> <br> <br>