我现在用ShellAPI来监控文件的复制、移动等动作,怎样在监控到文件创建时获取此文件的原文件路径?我有代码如下:{* ShellAPI文件监控 *}
procedure TfrmMain.WMSHNOTIFY(var Msg: TMessage);
var
vBuffer: array[0..MAX_PATH] of Char;
pidlItem: PSHNOTIFYSTRUCT;
sFilePath1, sFilePath2: String;
begin
pidlItem := PSHNOTIFYSTRUCT(Msg.WParam);
SHGetPathFromIDList(pidlItem.dwItem1, vBuffer);
sFilePath1 := vBuffer;
SHGetPathFromIDList(pidlItem.dwItem2, vBuffer);
sFilePath2 := vBuffer; case Msg.lParam of //根据参数设置提示消息
SHCNE_CREATE:
begin
//***************************************************************************
//在这里怎样获取sFilePath1的原文件路径,sFilePath1只是目标文件路径,应该是用什么API来的吧,可以我找了好久找不到,请高手指点一下。
//***************************************************************************
TAddFileThread.Create(pExePath, sFilePath1, sCheckSourceFile); //添加文件线程
sTemp := '建立文件 文件名:' + sFilePath1;
end;
end;
end;
procedure TfrmMain.WMSHNOTIFY(var Msg: TMessage);
var
vBuffer: array[0..MAX_PATH] of Char;
pidlItem: PSHNOTIFYSTRUCT;
sFilePath1, sFilePath2: String;
begin
pidlItem := PSHNOTIFYSTRUCT(Msg.WParam);
SHGetPathFromIDList(pidlItem.dwItem1, vBuffer);
sFilePath1 := vBuffer;
SHGetPathFromIDList(pidlItem.dwItem2, vBuffer);
sFilePath2 := vBuffer; case Msg.lParam of //根据参数设置提示消息
SHCNE_CREATE:
begin
//***************************************************************************
//在这里怎样获取sFilePath1的原文件路径,sFilePath1只是目标文件路径,应该是用什么API来的吧,可以我找了好久找不到,请高手指点一下。
//***************************************************************************
TAddFileThread.Create(pExePath, sFilePath1, sCheckSourceFile); //添加文件线程
sTemp := '建立文件 文件名:' + sFilePath1;
end;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货