⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 FTP的基本功能都有 界面比较粗糙
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#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 + -