请问高手:如何在服务器上查找已知文件名的文件是否存在?delphi里如何实现 请问高手:如何在服务器上查找已知文件名的文件是否存在?delphi里如何实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 FileSearch 查找目录中是否有一特定文件。 SetCurrentdir(const dir:string):boolean;设置系统当前目录。 问题是这样的:在远程服务器上查找,比如172.21.123.104下的\aaaData下的文件a?.dat,已知用户名和口令,用fileexist好像不行。 发送一个HTTP请求,HEAD /aaaData/a.datWinSocket知道吧?TClientSocket对Win32 sockets API进行了封装设置好ClientSocket.Host := '172.21.123.104';ClientSocket.Port := 80;ClientSocket.ClientType:=ctBlocking;ClientSocket.Active := True;然后就是发送适当的HTTP请求SendStr:=SendStr+'HEAD /aaaData/a.dat HTTP/1.0'+#13#10;SendStr:=SendStr+'Accept: */*'+#13#10;SendStr:=SendStr+'Host: 172.21.123.104'+#13#10;SendStr:=SendStr+'Authorization: Basic '+Base64Encode(UserName+':'+Password)+#13#10;//Base64Encode对用户名和密码进行Base64编码SendStr:=SendStr+#13#10;ClientSocket.Socket.SendText(SendStr);用ClientSocket.Socket.ReceiveBuf按块获取得到的返回的头信息var Buf: array[0..1023] of Char; Rec:integer;while ClientSocket.Active dobegin Rec := ClientSocket.Socket.ReceiveBuf(Buf, SizeOf(Buf)); Str := Str + Buf; if Rec = 0 then Break;end;//404表示文件不存在,200表示成功,这个就不用我说了吧? 不用获取全部头信息~~~这样更好var Buf: array[0..14] of Char;ClientSocket.Socket.ReceiveBuf(Buf, 15);if Pos('200', Buf)<>0 then //成功elseif Pos('404', Buf)<>0 //文件不存在else //其它请求错误 有关STR转换成BYTE 如何得到IE的版本??? 接口的继承 如何在函数接口中使用动态数组 串口侦听,帮帮忙,一定给分 DELPHI怎样通过ADO来对DBASE3的数据库表进行物理删除?高手请进 delphi中的 没有log函数?用哪个来实现? 最近做了一个,淘宝自动发货软件,自动发卡,自动评价,(E速达)欢迎大家提提意见 最新消息----老鱼回来篇,欢迎的举手 求救!关于用Delphi 操作EXCEL? 在MDI主窗体中放一张图片作为背景,怎么实现a ? 关于客户服务器的编程问题!急!急!急!
在远程服务器上查找,比如172.21.123.104下的\aaaData下的文件a?.dat,已知用户名和口令,用fileexist好像不行。
ClientSocket.Host := '172.21.123.104';
ClientSocket.Port := 80;
ClientSocket.ClientType:=ctBlocking;
ClientSocket.Active := True;然后就是发送适当的HTTP请求SendStr:=SendStr+'HEAD /aaaData/a.dat HTTP/1.0'+#13#10;
SendStr:=SendStr+'Accept: */*'+#13#10;
SendStr:=SendStr+'Host: 172.21.123.104'+#13#10;
SendStr:=SendStr+'Authorization: Basic '+Base64Encode(UserName+':'+Password)+#13#10;//Base64Encode对用户名和密码进行Base64编码
SendStr:=SendStr+#13#10;
ClientSocket.Socket.SendText(SendStr);用ClientSocket.Socket.ReceiveBuf按块获取得到的返回的头信息var
Buf: array[0..1023] of Char;
Rec:integer;while ClientSocket.Active do
begin
Rec := ClientSocket.Socket.ReceiveBuf(Buf, SizeOf(Buf));
Str := Str + Buf;
if Rec = 0 then Break;
end;//404表示文件不存在,200表示成功,这个就不用我说了吧?
Buf: array[0..14] of Char;ClientSocket.Socket.ReceiveBuf(Buf, 15);if Pos('200', Buf)<>0 then
//成功
elseif Pos('404', Buf)<>0
//文件不存在
else
//其它请求错误