📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "stdio.h"
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "StatusBar1"
#pragma link "ImageList1"
#pragma link "ProgressBar1"
#pragma resource "*.dfm"
AnsiString CurrentDir;
void _fastcall RefreshViewLocal(void);
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(Form2->ShowModal()==mrOk)
{
NMFTP1->Host=Form2->Edit1->Text;
NMFTP1->Port=StrToInt(Form2->Edit4->Text);
if(Form2->CheckBox1->Checked) //匿名
NMFTP1->UserID="anonymouse";
else
NMFTP1->UserID=Form2->Edit2->Text;
NMFTP1->Password=Form2->Edit3->Text;
NMFTP1->ReportLevel=Status_Basic;
NMFTP1->Connect();
//随后的处理操作,如调用 List 方法,清空 Form2 中的各个 Edit 的内容等操作
//方在 NMFTP1 的 OnConnect 事件中
}
}
//---------------本地文件刷新-----------------------------------------------------
//---------------------------------------------------------------------------
void _fastcall RefreshViewLocal(void)
{
TSearchRec sr;
TListItem *NewItem;
AnsiString Ext;
TListView *ListViewLocal;
ListViewLocal->Items->Clear();
if (FindFirst(CurrentDir+"\\*.*",faAnyFile, sr) == 0)
{
do
{
if(sr.Name==".")
continue;
NewItem=ListViewLocal->Items->Add();
if (sr.Attr==faDirectory) //目录
{
if(sr.Name=="..")
{
NewItem->ImageIndex=0;
NewItem->Caption="..上级目录";
NewItem->SubItems->Add("");
NewItem->SubItems->Add("");
NewItem->SubItems->Add("");
}
else
{
NewItem->ImageIndex=1;
NewItem->Caption=sr.Name;
NewItem->SubItems->Add("");
NewItem->SubItems->Add("文件夹");
NewItem->SubItems->Add(FileDateToDateTime(sr.Time));
}
}
else
{
Ext=ExtractFileExt(sr.Name).LowerCase();
if(Ext==".rm")
{
NewItem->ImageIndex=2;
NewItem->Caption=sr.Name ;
NewItem->SubItems->Add(sr.Size);
NewItem->SubItems->Add("rm电影");
NewItem->SubItems->Add(FileDateToDateTime(sr.Time));
}
else
{
NewItem->ImageIndex=2;
NewItem->Caption=sr.Name ;
NewItem->SubItems->Add(sr.Size);
NewItem->SubItems->Add(Ext+"类型文件");
NewItem->SubItems->Add(FileDateToDateTime(sr.Time));
}
}
} while (FindNext(sr) == 0);
FindClose(sr);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListViewLocalDblClick(TObject *Sender)
{
if(ListViewLocal->SelCount==1)
{
if(ListViewLocal->Selected->ImageIndex==0)
{ //上级目录
int i;
i=CurrentDir.Length();
while(i>0)
{
if(CurrentDir[i]=='\\')
{
CurrentDir.Delete(i,CurrentDir.Length());
RefreshViewLocal();
break;
}
i--;
}
}
else if(ListViewLocal->Selected->ImageIndex==1)
{
CurrentDir=CurrentDir+"\\"+ListViewLocal->Selected->Caption;
}
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
NMFTP1->Disconnect();
DriveComboBox2->Text="";
Button2->Enabled=true;
Button5->Enabled=false;
Button7->Enabled=false;
DriveComboBox2->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall RefreshViewRemote(void)
{
TListView *ListViewRemote;
TNMFTP *NMFTP1;
TListItem *NewItem;
AnsiString Name,Attribute,Date,Size;
ListViewRemote->Clear();
for (int I = 0; I < NMFTP1->FTPDirectoryList->name->Count; I++)
{
Name=NMFTP1->FTPDirectoryList->name->Strings[I];
Size=NMFTP1->FTPDirectoryList->Size->Strings[I];
Date=NMFTP1->FTPDirectoryList->ModifDate->Strings[I];
Attribute=NMFTP1->FTPDirectoryList->Attribute->Strings[I];
if(Attribute[1]=='d' && Name==".") //
{
continue;
}
NewItem=ListViewRemote->Items->Add();
if(Attribute[1]=='d' && Name=="..")
{
NewItem->ImageIndex=0;
NewItem->Caption="..上级目录";
continue;
}
if(Attribute[1]=='d')
{
NewItem->ImageIndex=1;
}
else
{
AnsiString FileExt=ExtractFileExt(Name);
if(FileExt==".exe")
NewItem->ImageIndex=2;
else
NewItem->ImageIndex=2;
}
NewItem->Caption=Name;
NewItem->SubItems->Add(Size);
NewItem->SubItems->Add(Date);
NewItem->SubItems->Add(Attribute);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListViewRemoteDblClick(TObject *Sender)
{
AnsiString TmpFile;
if(ListViewRemote->SelCount==1)
{
if(ListViewRemote->Selected->ImageIndex==0)
{
AnsiString tmpDir="..";
NMFTP1->ChangeDir(tmpDir);
ListViewRemote->Items->Clear();
NMFTP1->List();
DriveComboBox2->Text=NMFTP1->CurrentDir;
}
else if(ListViewRemote->Selected->ImageIndex==1)
{
AnsiString tmpDir=ListViewRemote->Selected->Caption;
NMFTP1->ChangeDir(tmpDir);
ListViewRemote->Items->Clear();
NMFTP1->List();
DriveComboBox2->Text=NMFTP1->CurrentDir;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
NMFTP1->ChangeDir("..");
ListViewRemote->Items->Clear();
NMFTP1->List();
DriveComboBox2->Text=NMFTP1->CurrentDir;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DriveComboBox2KeyPress(TObject *Sender, char &Key)
{
if(Key==13)//回车
{
NMFTP1->ChangeDir(DriveComboBox2->Text);
NMFTP1->List();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
AnsiString FileName;
if(ListViewLocal->Selected->ImageIndex==1) //目录
{
FileName=ListViewLocal->Selected->Caption;
MessageDlg(FileName+ "是一个目录,软件尚未提供目录下载功能",
mtInformation, TMsgDlgButtons() << mbOK, 0);
}
else //文件
{
FileName=ListViewLocal->Selected->Caption;
NMFTP1->Upload(CurrentDir+"\\"+FileName,FileName);
RefreshViewLocal();
}
}
//---------------------------------------------------------------------------
//“上传为”菜单项
void __fastcall TForm1::N2Click(TObject *Sender)
{
AnsiString FileName;
if(ListViewLocal->Selected->ImageIndex==1) //目录
{
FileName=ListViewLocal->Selected->Caption;
MessageDlg(FileName+ "是一个目录,软件尚未提供目录下载功能",
mtInformation, TMsgDlgButtons() << mbOK, 0);
}
else //文件
{
AnsiString NewName;
if(InputQuery("输入文件名","上载后的文件名:",NewName))
{
FileName=ListViewLocal->Selected->Caption;
NMFTP1->Upload(CurrentDir+"\\"+FileName,FileName);
RefreshViewLocal();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N13Click(TObject *Sender)
{
RefreshViewLocal();
}
//----------------下载--------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
AnsiString FileName;
if(ListViewRemote->Selected->ImageIndex==1) //目录
{
FileName=ListViewLocal->Selected->Caption;
MessageDlg(FileName+ "是一个目录,软件尚未提供目录下载功能",
mtInformation, TMsgDlgButtons() << mbOK, 0);
}
else //文件
{
FileName=ListViewRemote->Selected->Caption;
NMFTP1->Download(FileName,CurrentDir+"\\"+FileName);
RefreshViewLocal();
}
}
//------------下载到------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
AnsiString FileName;
if(ListViewRemote->Selected->ImageIndex==1) //目录
{
FileName=ListViewLocal->Selected->Caption;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -