📄 frmmain.pas
字号:
FileName:=QueueList.Items[0].Caption;
QueueList.Items[0].SubItems[3]:='正在下载';
QueueList.Refresh;
if FileExists(FileName) then
begin
if MessageDlg('文件已存在,是否继续', mtConfirmation, [mbYes,mbNo], 0) = mrYes then
FTPClient.Get(FileName, LocalPath+'\'+FileName,false, true)
else FTPClient.Get(FileName, LocalPath+'\'+FileName, true);
end
else
FTPClient.Get(FileName, LocalPath+'\'+FileName, false);
QueueList.items[0].Delete;
QueueList.Refresh;
LocalChangeDirExecute(Sender);
end;
RemoteFileList.Enabled:=True;
ComboHistory.Enabled:=True;
RemoteUpDir.Enabled:=True;
IsTransParent:=False;
except
QueueList.Items[0].SubItems[3]:='错误';
ShowMessage('下载文件错误!');
RemoteFileList.Enabled:=True;
ComboHistory.Enabled:=True;
RemoteUpDir.Enabled:=True;
IsTransParent:=False;
end;
end;
procedure TFMain.UploadExecute(Sender: TObject);
var
FileName : String;
Item : TListItem;
QueueItem : TListItem;
begin
if not FTPClient.Connected Then Exit;
if LocalFileList.Selected = nil then Exit;
Item := LocalFileList.Selected;
QueueList.Clear;
while Item <> nil do
begin
QueueItem := QueueList.Items.Add;
QueueItem.Caption := Item.Caption;
QueueItem.SubItems.Add(LocaLPath);
QueueItem.SubItems.Add(Item.SubItems[1]);
QueueItem.SubItems.Add('->');
QueueItem.SubItems.Add('');
QueueItem.SubItems.Add(ComboHistory.Text);
Item:=LocalFileList.GetNextItem(Item,sdAll, [isSelected]);
end;
QueueList.Refresh;
LocalFileList.Enabled:=false;
DriveComboBox1.Enabled:=false;
RemoteFileList.Enabled:=False;
ComboHistory.Enabled:=false;
RemoteUpDir.Enabled:=false;
IsTransParent:=True;
try
while QueueList.Items.Count > 0 do
begin
FileName:=QueueList.Items[0].Caption;
QueueList.Items[0].SubItems[3]:='正在上传';
QueueList.Refresh;
FTPClient.Put(LocalPath+'\'+FileName, FileName);
RemoteChangeDirExecute(Sender);
QueueList.items[0].Delete;
QueueList.Refresh;;
end;
LocalFileList.Enabled:=True;
DriveComboBox1.Enabled:=True;
RemoteFileList.Enabled:=True;
ComboHistory.Enabled:=True;
RemoteUpDir.Enabled:=True;
IsTransParent:=False;
except
QueueList.Items[0].SubItems[3]:='错误';
ShowMessage('上传文件错误!');
LocalFileList.Enabled:=True;
DriveComboBox1.Enabled:=True;
RemoteFileList.Enabled:=True;
ComboHistory.Enabled:=True;
RemoteUpDir.Enabled:=True;
IsTransParent:=False;
end;
end;
procedure TFMain.LocalDirUpExecute(Sender: TObject);
begin
if length(LocalPath) = 3 then exit;
LocalPath:=LocalPath+'.txt';
LocalPath:=ExtractFileDir(LocalPath);
LocalChangeDirExecute(Sender);
end;
procedure TFMain.LocalMakeDirExecute(Sender: TObject);
var
NewFolder : String;
begin
NewFolder:= InputBox('新建文件夹', '名字', '');
if NewFolder <> '' then
try
CreateDir(NewFolder);
LocalChangeDirExecute(Sender);
except
ShowMessage('创建本地目录错误');
end;
end;
procedure TFMain.RemoteDelExecute(Sender: TObject);
Var
FileName:String;
begin
if not FTPClient.Connected then exit;
if RemoteFileList.Selected = nil then exit;
FileName:= RemoteFileList.Selected.Caption;
if RemoteFileList.Selected.SubItems[0] = '文件夹' then
FTPClient.RemoveDir(FileName)
else
FtpClient.Delete(FileName);
RemoteChangeDirExecute(Sender);
end;
procedure TFMain.RemoteNewDirExecute(Sender: TObject);
var
NewFolder : String;
begin
if not FTPClient.Connected then exit;
NewFolder := InputBox('新建文件夹', '名字', '');
if NewFolder <> '' then
FTPClient.MakeDir(NewFolder);
RemoteChangeDirExecute(Sender);
end;
procedure TFMain.LocalChangeDirExecute(Sender: TObject);
var
sr: TSearchRec;
Item : TListItem;
begin
SetCurrentDir(LocalPath);
LocalFileList.Clear;
if FindFirst('*', faDirectory, sr) = 0 then
begin
repeat
if ((sr.Attr and faDirectory) = sr.Attr) and (sr.Name <> '.') and (sr.Name <> '..') then
begin
Item:=LocalFileList.Items.Add;
Item.ImageIndex:=0;
Item.Caption:=sr.Name;
Item.SubItems.Add('文件夹');
Item.SubItems.Add('');
Item.SubItems.Add(DateTimeToStr(sr.Time));
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
if FindFirst('*', faArchive, sr) = 0 then
begin
repeat
Item:=LocalFileList.Items.Add;
Item.ImageIndex:=1;
Item.Caption:=sr.Name;
Item.SubItems.Add('');
Item.SubItems.Add(IntToStr(sr.Size));
Item.SubItems.Add(DateTimeToStr(sr.Time));
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
procedure TFMain.LocalFileListContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
begin
if LocalFileList.Selected = nil then
begin
LocalMakeDir.Enabled:=true;
ViewIcon.Enabled:=true;
ViewSmallIcon.Enabled:=true;
ViewList.Enabled:=True;
ViewReport.Enabled:=True;
UpLoad.Enabled:=False;
end
else begin
LocalMakeDir.Enabled:=False;
ViewIcon.Enabled:=False;
ViewSmallIcon.Enabled:=False;
ViewList.Enabled:=False;
ViewReport.Enabled:=False;
if LocalFileList.Selected.SubItems[0] = '文件夹' then
UpLoad.Enabled:=False
else UpLoad.Enabled:=True
end;
end;
procedure TFMain.RemoteFileListContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
begin
if RemoteFileList.Selected = nil then
begin
RemoteNewDir.Enabled:=True;
N86.Enabled:=True;
ViewIcon.Enabled:=True;
ViewSmallIcon.Enabled:=True;
ViewList.Enabled:=True;
ViewReport.Enabled:=True;
DownLoad.Enabled:=False;
RemoteRename.Enabled:=False;
RemoteDel.Enabled:=False;
end
else begin
RemoteNewDir.Enabled:=False;
N86.Enabled:=false;
ViewIcon.Enabled:=False;
ViewSmallIcon.Enabled:=False;
ViewList.Enabled:=False;
ViewReport.Enabled:=False;
RemoteRename.Enabled:=true;
RemoteDel.Enabled:=True;
if remoteFileList.Selected.SubItems[0] = '文件夹' then
DownLoad.Enabled:=False
else download.Enabled:=True
end;
end;
procedure TFMain.DriveComboBox1Change(Sender: TObject);
begin
LocalPath:= DriveComboBox1.Drive+':\';
LocalChangeDirExecute(Sender);
end;
procedure TFMain.LocalFileListDblClick(Sender: TObject);
var
FileName : String;
begin
if LocalFileList.Selected = nil then Exit;
FileName :=LocalFileList.Selected.Caption;
if LocalFileList.Selected.SubItems[0] = '文件夹' then
begin
if Length(LocalPath)=3 then
LocalPath := LocalPath + FileName
else LocalPath := LocalPath + '\' + FileName;
LocalChangeDirExecute(Sender);
end
else begin
if not FTPClient.Connected Then Exit;
if MessageDlg('是否上传该文件?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
UpLoadExecute(Sender);
end;
end;
procedure TFMain.ViewIconExecute(Sender: TObject);
begin
LocalFileList.ViewStyle:=vsIcon;
// TListView(Sender).ViewStyle:=vsIcon;
end;
procedure TFMain.ViewSmallIconExecute(Sender: TObject);
begin
LocalFileList.ViewStyle:=vsSmallIcon;
end;
procedure TFMain.ViewListExecute(Sender: TObject);
begin
LocalFileList.ViewStyle:=vsList;
end;
procedure TFMain.ViewReportExecute(Sender: TObject);
begin
LocalFileList.ViewStyle:=vsReport;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -