读书人

希望大家能帮小妹小弟我解决这个有关问

发布时间: 2012-03-13 11:21:11 作者: rapoo

希望大家能帮小妹我解决这个问题
做了一个右键菜单关联的程序
可是
为什么用ParamStr(1)显示出来的文件的名称不全啊

我是用 showmessage(ParamStr(1));

为什么好多文件名都变成了~1 、~2什么的了

比如说
一个叫“数据库更新记录.txt”的文件
用上面的showmessage显示的是“数据库~2.txt”了
大家能帮我解答下吗


[解决办法]
长文件名缩列形式~,在DOS下才会出现的哦!
[解决办法]
先定义两个函数:
function GetLongPathName(lpszShortPath: PChar; lpszLongPath: PChar; cchBuffer: DWORD): DWORD; stdcall; external kernel32 name 'GetLongPathNameA ';

function ExtractLongPathName(const FileName: string): string;
var
Buffer: array[0..MAX_PATH - 1] of Char;
begin
SetString(Result, Buffer, GetLongPathName(PChar(FileName), Buffer, SizeOf(Buffer)));
end;

然后把你的showmessage(ParamStr(1));
改写成showmessage(ExtractLongPathName(ParamStr(1)));

读书人网 >.NET

热点推荐