C
Carem
Unregistered / Unconfirmed
GUEST, unregistred user!
我正在为单位写一个监控软件。现在就是差这部分了。要求就是能够好像冰河一样,在treeview里面对客户端的磁盘和文件进行浏览和下载,但是我从来没做过,甚至连一个方向都没有!我参照过某个东西的源代码,但是他没有任何注释。请问有谁可以帮帮忙啊!??<br><br>以下是我看的那东西的关于文件操作的源代码!(是server端的)<br><br> var gotstr:string;<br> i, PX : integer;<br> TM : Cardinal;<br> RG : TRegistry;<br> TPC : PChar;<br> TMR, DM : string;<br> STD : TSearchRec;<br> FL : FILE; <br><br><br>// Disk list transmitting<br> if gotstr='getbaselist' then<br> begin<br> GetMem (TPC, 100);<br> PX:=GetLogicalDriveStrings (100, TPC);<br> DM:='';<br> for i:=-1 to PX do<br> if (TPC+i)[1]<>#0 then DM:=DM+(TPC+i)[1];<br> FreeMem (TPC);<br> TMR:='';<br> Socket.SendText ('{TDSS}');<br> for i:=1 to Length (DM) do<br> begin<br> TMR:=TMR+DM;<br> if (i mod 3)=0 then<br> begin<br> GetMem (TPC, 4);<br> StrPCopy (TPC, TMR);<br> PX:=GetDriveType (TPC);<br> FreeMem (TPC);<br> TM:=0;<br> if PX=DRIVE_CDROM then<br> begin<br> TMR:='C_'+TMR+WrapStr;<br> TM:=10;<br> end;<br> if PX=DRIVE_FIXED then<br> begin<br> TMR:='H_'+TMR+WrapStr;<br> TM:=10;<br> end;<br> if TM>0 then Socket.SendText (TMR);<br> TMR:='';<br> end;<br> end;<br> Socket.SendText ('{FFDT}');<br> end;<br> // 襄疱溧鬣 耧桉赅 羿殡钼 ?镟镪?<br> <br> if copy (gotstr, 1, 7)='diskget' then<br> begin<br> Socket.SendText ('{LFTM}'+WrapStr);<br> FindFirst (extract (gotstr, 8, Length(gotstr))+'*.*', faAnyFile, STD);<br> if ((STD.Attr and faDirectory)>0) and (STD.Name<>'.') then<br> Socket.SendText (TransName(STD)+WrapStr);<br> repeat<br> PX:=FindNext (STD);<br> if (PX=0) and ((STD.Attr and faDirectory)>0) and (STD.Name<>'..') then<br> Socket.SendText (TransName(STD)+WrapStr);<br> until PX<>0;<br> FindClose (STD);<br><br> FindFirst (extract (gotstr, 8, Length(gotstr))+'*.*',<br> faArchive+faReadOnly+<br> faHidden+faSysFile, STD);<br> if STD.Attr<>faDirectory then<br> Socket.SendText (TransName(STD)+GetFSizeStr (STD));<br> repeat<br> PX:=FindNext (STD);<br> if (PX=0) and (STD.Attr<>faDirectory) then<br> Socket.SendText (TransName(STD)+GetFSizeStr (STD));<br> until PX<>0;<br> FindClose (STD);<br> Socket.SendText ('{RETL}');<br> end;<br><br>