📄 unit1useunit.pas
字号:
N22.Enabled:=True;
ToolButton33.Enabled:=True;//复制到.......
ToolButton34.Enabled:=True;//移动到.......
N102.Enabled:=True; //复制到.......
N111.Enabled:=True; //移动到.......
if (IdFTCPClient.Connected and isRemoteStat) then
begin
ToolButton42.Enabled:=False;//下载
N38.Enabled:=False; //download
if ComboBox1.Text<>'' then //upload
N40.Enabled:=True else N40.Enabled:=False;
end;
end
end;
end;//end----with
end;
//本地文件目录的复制 6
procedure LocalDirCopy(SDir,TDir:String);
var
FDCFm:TFDirCopyFm;
begin
Application.CreateForm(TFDirCopyFm,FDCFm);
FDCFm.Edit3.Text:=SDir;
FDCFm.Edit2.Text:=TDir;
FDCFm.Show;
end;
//本地文件目录的剪切 7
procedure LocalDirXCopy(SDir,TDir:String);
var
FDCFm:TFDirXCopyFm;
begin
Application.CreateForm(TFDirXCopyFm,FDCFm);
FDCFm.Edit3.Text:=SDir;
FDCFm.Edit2.Text:=TDir;
FDCFm.Show;
end;
//从远程下载目录文件 8
procedure RemoteDirCopyDown(SDir,TDir:String);
var
FDCFm:TRemoteDirDLFm;
begin
Application.CreateForm(TRemoteDirDLFm,FDCFm);
FDCFm.Edit3.Text:=SDir;
FDCFm.Edit2.Text:=TDir;
FDCFm.Show;
end;
//从远程移动目录文件 10
procedure RemoteDirMoveDown(SDir,TDir:String);
var
FDCFm:TRemoteDirMDLFm;
begin
Application.CreateForm(TRemoteDirMDLFm,FDCFm);
FDCFm.Edit3.Text:=SDir;
FDCFm.Edit2.Text:=TDir;
FDCFm.Show;
end;
//在远程主机上创建子文件夹
procedure RemoteDirCreate(TheDir:String;TheTCP:TIdTCPClient);
var
TheReturnStr:String;
begin
TheTCP.Write('目录创建'+EOL);
TheTCP.Write(TheDir+EOL);
TheReturnStr:=TheTCP.ReadLn(EOL);
if TheReturnStr<>'OK' then
application.MessageBox(PChar(TheReturnStr),
'远程文件夹创建失败:',MB_OK+MB_ICONSTOP);
end;
//控制远程主机的文件复制 12
procedure AtRemoteDirCopy(SDir,TDir:String);
var
ARCFm:TAtRemoteCopyFm;
begin
ARCFm:=TAtRemoteCopyFm.Create(nil);
ARCFm.Edit1.Text:='';
ARCFm.Edit2.Text:='';
ARCFm.Edit3.Text:=TDir;
ARCFm.Edit4.Text:=SDir;
ARCFm.Show;
end;
//控制远程主机的文件剪切或目录移动 13
procedure AtRemoteDirXCopy(SDir,TDir:String);
var
ARXCFm:TAtRemoteXCopyFm;
begin
ARXCFm:=TAtRemoteXCopyFm.Create(nil);
ARXCFm.Edit1.Text:='';
ARXCFm.Edit2.Text:='';
ARXCFm.Edit3.Text:=TDir;
ARXCFm.Edit4.Text:=SDir;
ARXCFm.Show;
end;
//目录状态设置和相关菜单按纽的设置
procedure SetDirButtonState;
begin
with Form1 do
begin
ToolButton28.Enabled:=True;//复制
ToolButton27.Enabled:=True;//剪切
ToolButton30.Enabled:=False;//删除
if ComboBox1.text='' then //新建文件夹
ToolButton32.Enabled:=False else
ToolButton32.Enabled:=True;
if ComboBox1.text='' then //新建文件夹
N22.Enabled:=False else //新建文件夹
N22.Enabled:=True;
ToolButton33.Enabled:=True;//复制到.......
ToolButton34.Enabled:=True;//移动到.......
N102.Enabled:=True; //复制到.......
N111.Enabled:=True; //移动到.......
end;
end;
//远程文件执行或打开 15
procedure RemoteFileOpen(TheFile:String;TheTcp:TIdTcpClient);
var
TheRetStr:String;
begin
if Application.MessageBox(PChar(TheFile),
'=====是否要在远程主机上打开该文件?=====',
MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
begin
Try
TheTCP.Write('远程执行'+EOL);
TheTCP.Write(TheFile+EOL);
TheRetStr:=TheTCP.ReadLn(EOL);
except
Application.MessageBox('由于网络的原因,操作可能不成功,'+
#10#13+'请网络恢复后仔细检查操作的结果。',
'网络失败',
MB_OK+MB_ICONSTOP);
exit;
end;
Application.MessageBox(PChar(TheRetStr),'远程信息反馈:',
MB_OK+MB_ICONINFORMATION);
end;
end;
//获取本地文件或文件夹的属性 16
procedure GetLocalFileAttr(TheDFile:String;isDir:boolean);
var
sr:TSearchRec;
FileAttrs,iFCount:integer;
LocalFileTime:TFileTime;
DosFileTime : DWORD;
TheFL:TStringList;
begin
if not isDir then
begin
if FindFirst(TheDFile,faAnyFile, sr) = 0 then
begin
FileTypeFm.Caption:='查看文件属性:';
FileTypeFm.Edit7.Text:=ExtractFileName(TheDFile);
FileTypeFm.Edit1.Text:=ExtractFileExt(TheDFile);
FileTypeFm.Edit2.Text:=ExtractFilePath(TheDFile);
FileTypeFm.Edit3.Text:=IntToStr(sr.Size)+'字节';
//文件创建时间
FileTimeToLocalFileTime(sr.FindData.ftCreationTime,LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,
LongRec(DosFileTime).Hi,LongRec(DosFileTime).Lo);
FileTypeFm.Edit4.Text:=DateTimeToStr(FileDateToDateTime(DosFileTime));
//文件修改时间
FileTypeFm.Edit5.Text:=DateTimeToStr(FileDateToDateTime(sr.Time));
//文件最后访问时间
FileTimeToLocalFileTime(sr.FindData.ftLastAccessTime,LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,
LongRec(DosFileTime).Hi,LongRec(DosFileTime).Lo);
FileTypeFm.Edit6.Text:=DateTimeToStr(FileDateToDateTime(DosFileTime));
//设置文件读写属性
FileTypeFm.CheckBox1.Checked:=(sr.Attr and faReadOnly)=faReadOnly;
FileTypeFm.CheckBox2.Checked:=(sr.Attr and faHidden)=faHidden;
FileTypeFm.CheckBox3.Checked:=(sr.Attr and faArchive)=faArchive;
FileTypeFm.CheckBox4.Checked:=(sr.Attr and faSysFile)=faSysFile;
FileTypeFm.Tag:=1;//表示本地
FileTypeFm.Show;
end;
FindClose(sr);
end;
if isDir then
begin
if TheDFile[length(TheDFile)]='\' then
TheDFile:=StrUtils.LeftStr(TheDFile,length(TheDFile)-1);
TheFL:=TStringList.Create;
TheGFDirSize:=0;
TheFolderCount:=0;
DirTypeFm.Tag:=1;//表示本地
DirTypeFm.Caption:='请稍侯,正在统计... ..';
DirTypeFm.Show;
GetFileList(TheDFile+'\',TheFL);
DirTypeFm.Caption:='属性查看:';
iFCount:=TheFL.Count;
DirTypeFm.Edit6.Text:=ExtractFileName(TheDFile);
DirTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
DirTypeFm.Edit3.Text:=IntToStr(TheGFDirSize)+'字节'; //目录文件大小
DirTypeFm.Edit4.Text:=IntToStr(iFCount)+'个文件,'+
' 子文件夹'+IntToStr(TheFolderCount)+'个'; //目录文件数
TheFL.Free;
if FindFirst(TheDFile,faAnyFile, sr) = 0 then
begin
DirTypeFm.Edit5.Text:=DateTimeToStr(FileDateToDateTime(sr.Time)); //创建时间
DirTypeFm.CheckBox1.Checked:=(sr.Attr and faReadOnly)=faReadOnly;
DirTypeFm.CheckBox2.Checked:=(sr.Attr and faHidden)=faHidden;
DirTypeFm.CheckBox3.Checked:=(sr.Attr and faArchive)=faArchive;
end;
FindClose(sr);
end;
end;
//查看远程的文件或目录属性-------------17
procedure GetRemoteFileAttr(TheDFile:String;isDirName:boolean);
var
ReadFDSize:integer; //read The dir tatolSize
ReadInclude:String; // read the Dir Include
ReadCreateTime:string; //read Dir Create time
ReadFDAttr:integer; //read directory Attr
ReadFSize:integer; // read file size
ReadFCreateTime:String; //...
ReadFWriteTime :String; //...
ReadFAccessTime:String; //...
ReadFAttr :integer; // read the File Attr
begin
if isDirName then //===================================远程目录属性查询
begin
if TheDFile[Length(TheDFile)]='\' then
TheDFile:=StrUtils.LeftStr(TheDFile,length(TheDFile)-1);
DirTypeFm.Caption:='请稍候,正在从远程查询信息... .. .';
DirTypeFm.Edit6.Text:=ExtractFileName(TheDFile);
DirTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
DirTypeFm.Tag:=2;
DirTypeFm.Show;
//DirTypeFm.Enabled:=False;
Form1.IdFTCPClient.Write('目录属性'+EOL); //发送查询命令
Form1.IdFTCPClient.Write(TheDFile+'\'+EOL); //发送查询目录
ReadFDSize:=Form1.IdFTCPClient.ReadInteger; //1读查询的文件大小
ReadInclude:=Form1.IdFTCPClient.ReadLn(EOL); //2读包含项值
ReadCreateTime:=Form1.IdFTCPClient.ReadLn(EOL); //3读创建时间
readFDAttr:=Form1.IdFTCPClient.ReadInteger; //4读属性值
DirTypeFm.Edit3.Text:=IntToStr(ReadFDSize)+'字节';
DirTypeFm.Edit4.Text:=ReadInclude;
DirTypeFm.Edit5.Text:=ReadCreateTime;
DirTypeFm.CheckBox1.Checked:=(ReadFDAttr and faReadOnly)=faReadOnly;
DirTypeFm.CheckBox2.Checked:=(ReadFDAttr and faHidden)=faHidden;
DirTypeFm.CheckBox3.Checked:=(ReadFDAttr and faArchive)=faArchive;
DirTypeFm.Caption:='返回远程目录属性:';
//DirTypeFm.Enabled:=True;
end;
if Not isDirName then//===================================远程文件属性查询
begin
FileTypeFm.Caption:='请稍候,正在从远程查询信息... .. .';
FileTypeFm.Edit7.Text:=ExtractFileName(TheDFile);
FileTypeFm.Edit1.Text:=ExtractFileExt(TheDFile);
FileTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
FileTypeFm.Tag:=2;
FileTypeFm.Show;
// FileTypeFm.Enabled:=False;
Form1.IdFTCPClient.Write('文件属性'+EOL); //发送查询命令
Form1.IdFTCPClient.Write(TheDFile+EOL); //发送查询文件
ReadFSize :=Form1.IdFTCPClient.ReadInteger; //读查询的文件大小
ReadFCreateTime:=Form1.IdFTCPClient.ReadLn(EOL); //读创建时间
ReadFWriteTime :=Form1.IdFTCPClient.ReadLn(EOL); //读修改时间
ReadFAccessTime:=Form1.IdFTCPClient.ReadLn(EOL); //读访问时间
readFAttr :=Form1.IdFTCPClient.ReadInteger; //读属性值
FileTypeFm.Edit3.Text:=IntToStr(ReadFSize)+'字节';//设置文件大小
FileTypeFm.Edit4.Text:=ReadFCreateTime; //设置创建时间
FileTypeFm.Edit5.Text:=ReadFWriteTime; //设置修改时间
FileTypeFm.Edit6.Text:=ReadFAccessTime; //设置访问时间
FileTypeFm.CheckBox1.Checked:=(ReadFAttr and faReadOnly)=faReadOnly;
FileTypeFm.CheckBox2.Checked:=(ReadFAttr and faHidden)=faHidden;
FileTypeFm.CheckBox3.Checked:=(ReadFAttr and faArchive)=faArchive;
FileTypeFm.CheckBox4.Checked:=(ReadFAttr and faSysFile)=faSysFile;
FileTypeFm.Caption:='返回远程文件属性:';
//FileTypeFm.Enabled:=True;
end;
end;
//更改远程文件或目录的名称 18
procedure RenameRemoteName(TheOldName,TheNewName:String;TheTcp:TIdTcpClient);
var
TheRetStr:String;
begin
Try
TheTcp.Write('名称更改'+EOL);
TheTcp.Write(TheOldName+EOL);
TheTcp.Write(TheNewName+EOL);
TheRetStr:=TheTcp.ReadLn(EOL);
Form1.TreeView1DblClick(nil);
Application.MessageBox(PChar(TheRetStr),'远程信息反馈:',
MB_OK+MB_ICONEXCLAMATION);
except
Application.MessageBox('请检查网络是否开通!',
'远程操作失败',
MB_OK+MB_ICONSTOP);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -