急急急,求复制文件的方法!(20分)

  • 主题发起人 主题发起人 zpselect
  • 开始时间 开始时间
Z

zpselect

Unregistered / Unconfirmed
GUEST, unregistred user!
求在局域网内根据对方的IP地址,将某个文件复制到本机的某个目录下,然后将源文件删除!
如:对方的IP为:192.168.1.1 
 文件路径为:C:/windows/temp/teset.doc
现在要我将此文件复制到本机的D:/temp下,然后将源文件删除!
 
首先要共享 c:/windows/temp 然后使用//机器名字/temp/teset.doc 复制到 d:/temp
如果是delphi 做
s:tmemorystream;
s := tmemorystream.create
s.loadfromfile('//192.168.1.1/temp/teset.doc');
s.savetofile('d:/temp/teset.doc');
s.free
用批处理也可以,hoho,你没有说要做什么,也许你说的是破解哦??那就不知道了
 
使作tmemorystream的方法,速度怎样?
我在网上了看了一些说CopyFile也可以,但是试了一会都不成功!
另外,源文件共享了,权限为:every one 而且可以读取的,那登陆时要输入账号和密码怎么解决?
另外复制之后怎样删除源文件(彻底删除,不入回收站)?
 
先用WNetAddConnection2建立连接
然后用SHFileOperation操作文件
 
写个批处理吧
*.bat
 
轻舞肥羊:
 可否给个例子?
iamy:
批处理?可否也给段代码?
 
我已经做成功了!

procedure TForm1.Button1Click(Sender: TObject);
var NetShare: TNetResource;
ret, err: Integer;
Pass, User: string;
begin
NetShare.dwType := RESOURCETYPE_DISK;
NetShare.lpLocalName := PChar('M:');
NetShare.lpRemoteName := PChar('//192.168.1.125/test');
NetShare.lpProvider := nil;
User := 'test';
Pass := 'test';
ret := WNetAddConnection2(NetShare, PChar(Pass), PChar(User), CONNECT_UPDATE_PROFILE);
if (ret <> NO_ERROR) then
Edit1.Text := Format('retcode: %d', [ret]);
end;
 
那怎么删除影射过来盘符下的某个文件呢?
如:盘符M下的test.doc文件
 
procedure TForm1.Button3Click(Sender: TObject);
var T: TSHFileOpStruct;
P: string;
begin
P := 'M:/2.text';
with T do
begin
Wnd := 0;
wFunc := FO_DELETE;
pFrom := Pchar(P);
fFlags := FOF_ALLOWUNDO
end;
SHFileOperation(T);
end;
怎么不能删除映射过盘符下的文件?手功删除又可以!
 
后退
顶部