发现Delphi6库函数ExtractFileDir存在错误 (0分)

K

kyq

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi库函数ExtractFileDir多字节字符编码处理上存在错误:
ExtractFileDir('E:/abc/工程问题2/index.doc');
结果为:
E:/abc/工程问题
正确结果应该为:
E:/abc/工程问题2

测试环境为Delphi 6+UpdatePatch 2, WinXP+SP1.020828-1920

解决方法:
uses
SysUtils;

function ExtractFileDirW(const s: WideString): WideString;
var
i: Integer;
begin
Result := s;
for i := Length(Result) downto 1 do
if Result = PathDelim then
begin
Result := Copy(Result, 1, i-1);
Break;
end;
end;

试试ExtractFileDirW('E:/abc/工程问题2/index.doc');
 
你用到filelistbox之类的控件了吧,就是这样的。
用api去目录就没问题了
 

用ExtractFilePath吧
 
顶部