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

📄 mainform.~cpp

📁 文件管理系统
💻 ~CPP
📖 第 1 页 / 共 4 页
字号:
CurrDir=SearchDir();
ShowDir(CurrDir);
//查询过的路径不重复的加入ComboBox
if(ComboBox1->Items->IndexOf(FilePath)==-1)ComboBox1->Items->Add(FilePath);
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton12Click(TObject *Sender)
{
if(CurrDir->father){
CurrDir=CurrDir->father;
ShowDir(CurrDir);
CurrNode=CurrNode->Parent;
CurrNode->Selected=true;
OutPath(CurrNode);
}        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton14Click(TObject *Sender)
{                //注销按钮
if(MessageDlg("确定注销:"+CurrUser+" 吗?",mtInformation,TMsgDlgButtons()
      <<mbYes<<mbNo, 0)==mrYes){
SaveDir(Dfp);
Close();
Form1->Show();
}
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton13Click(TObject *Sender)
{
               //编辑文件
  TListItem *Item;
  Item=ListView1->Selected;
  String Name;
  FILENODE tempfile;
  if(Item&&Item->ImageIndex==1)
    {
      Name=Item->Caption;
      tempfile=LocateFile(CurrDir,Name);
      if(CurrUser!="root"&&tempfile->user!=CurrUser){
         ShowMessage("你无权限编辑该文件!");return;}
      if(tempfile->property==0){
      ShowMessage("文件属性为只读,不可编辑");return;}
  Form7->Sname->Caption=tempfile->name;
  Form7->Stype->Caption=tempfile->name.SubString(tempfile->name.Length()-2,3)+"文件";
  Form7->Spath->Caption=FilePath+tempfile->name;
  Form7->Editlen->Text=IntToStr(tempfile->length);
  Form7->Tag=0;
  Form7->ShowModal();
  if(Form7->Tag){
    tempfile->length=Form7->Editlen->Text.ToInt();
    ShowDir(CurrDir);
    }
     }        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton8Click(TObject *Sender)
{
 TListItem *Item;
  Item=ListView1->Selected;
  String Name;
   DIRECTORY tempdir;
   FILENODE tempfile;
  if(Item&&Item->ImageIndex==1)   //文件删除
    { Name=Item->Caption;
      tempfile=LocateFile(CurrDir,Name);
      if(CurrUser!="root"&&tempfile->user!=CurrUser){                      //文件删除权限
         ShowMessage("你无权限删除该文件!");
         return;
         }
      if(MessageDlg("确定删除文件"+Name+"吗?",mtInformation,TMsgDlgButtons()
      <<mbYes<<mbNo, 0)==mrYes){
      tempfile->del=1;
      CurrDir->filenum--;
      ShowDir(CurrDir);
      }
    }
    else if(Item&&Item->ImageIndex==0){     //在ListView中删除文件夹
       Name=Item->Caption;
       tempdir=LocateDir(CurrDir,Name);
        if(CurrUser!="root"&&tempdir->user!=CurrUser){                      //文件夹删除权限
         ShowMessage("你无权限删除该文件夹!");
         return;
         }
        if(tempdir->dirpoint||tempdir->filenode)ShowMessage("提示:文件夹中有内容!");
        if(MessageDlg("确定删除文件夹"+Name+"吗?",mtInformation,TMsgDlgButtons()
      <<mbYes<<mbNo, 0)==mrYes){
       DelDir(tempdir);
       ShowDir(CurrDir);
      }
         }


      else if(TreeView1->Selected){           //在TreeView中删除文件夹
           Name=CurrDir->name;
           tempdir=CurrDir;
           if(Name=="Root"){ShowMessage("根文件夹不可删除!");return;}
           if(CurrUser!="root"&&tempdir->user!=CurrUser){                      //文件夹删除权限
         ShowMessage("你无权限删除该文件夹!");
         return;
         }
         if(tempdir->dirpoint||tempdir->filenode)ShowMessage("提示:文件夹中有内容!");
        if(MessageDlg("确定删除文件夹"+Name+"吗?",mtInformation,TMsgDlgButtons()
      <<mbYes<<mbNo, 0)==mrYes){
CurrDir=CurrDir->father;
CurrNode=CurrNode->Parent;
DelDir(tempdir);
 ShowDir(CurrDir);
OutPath(CurrNode);
        }
        }
        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton7Click(TObject *Sender)
{
   //粘贴功能
FILENODE file=Clip->filenode;
DIRECTORY dir=Clip->dirpoint,subdir;
if(CurrUser!="root"&&CurrUser!=CurrDir->user&&CurrDir->property==0){
ShowMessage("你无限权粘贴文件到此目录");return;}
if(!Clip->share)return;
//////////////////////////////////////////////////////////////////
else if(Clip->share==1){      //剪贴板是文件
if(Clip->property==0){//复制 改变创建用户
if(CreateFile(CurrDir,file->name,CurrUser,file->length,file->property,file->share))
{
ShowDir(CurrDir);
Clip->share=0;    //剪贴版置空
}
}
////////////////////////////////////////////////////////////////////
else {           //剪切
if(SameFile(CurrDir,file->name)){ShowMessage("文件已存在,无法创建!");return;}
   FILENODE PreFile;
   FILENODE CurrFile;
   subdir=file->father;
   CurrFile=PreFile=subdir->filenode;
   if(CurrFile==file)subdir->filenode=CurrFile->next;
   else {
         CurrFile=CurrFile->next;
         while(CurrFile!=file)
             { PreFile=CurrFile;               //取出file节点
               CurrFile=CurrFile->next;
              }
              PreFile->next=CurrFile->next;
           }
         subdir->filenum--;
  InsertFile(CurrDir,file);
  CurrDir->filenum++;
 ShowDir(CurrDir);
Clip->share=0;   //剪贴版置空
}
}
///////////////////////////////////////////////////////////
else if(Clip->share==2){    //剪贴板是目录
if(Clip->property==0){     //目录复制
if(SameDir(CurrDir,dir->name)){ShowMessage("文件夹已存在,无法创建!");return;}
DIRECTORY tempdir=CurrDir;
CreateDir(CurrDir,dir->name,CurrUser,dir->property,dir->share);
que.push(dir);       //从复制目录结构
while(!que.empty())
{
dir=que.front();
que.pop();
tempdir=LocateDir(tempdir,dir->name);
file=dir->filenode;
while(file){
if(file->del==0&&dir->del==0)
CreateFile(tempdir,file->name,CurrUser,file->length,dir->property,dir->share);
file=file->next;
}
subdir=dir->dirpoint;
while(subdir)     //子目录入队列
{
if(subdir->del==0&&dir->del==0)
CreateDir(tempdir,subdir->name,CurrUser,subdir->property,subdir->share);
que.push(subdir);
subdir=subdir->next;
}
} //while
TreeView1->Items->Clear();
ListTree(Root,NULL,0);
JumpToClick(Sender);
ShowDir(CurrDir);
Clip->share=0;    //剪贴版置空
}
////////////////////////////////////////////////////////
else {           //目录剪切
if(SameDir(CurrDir,dir->name)){ShowMessage("文件夹已存在,无法创建!");return;}
   DIRECTORY PreDir;
   DIRECTORY CuDir;
   subdir=dir->father;
   CuDir=PreDir=subdir->dirpoint;
   if(CuDir==dir)
      {subdir->dirpoint=CuDir->next;  //取出dir节点
      }
   else {
         CuDir=CuDir->next;
         while(CuDir!=dir)
             { PreDir=CuDir;
               CuDir=CuDir->next;
              }
              PreDir->next=CuDir->next;
           }
         subdir->dirnum--;
InsertDir(CurrDir,dir);
CurrDir->dirnum++;
TreeView1->Items->Clear();
ListTree(Root,NULL,0);
JumpToClick(Sender);
ShowDir(CurrDir);
Clip->share=0;    //剪贴版置空
}
}        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton6Click(TObject *Sender)
{
         //复制功能
TListItem *Item;
  Item=ListView1->Selected;
  String Name;
  if(Item&&Item->ImageIndex==1)     //复制文件
    {
    Name=Item->Caption;
    Clip->filenode=LocateFile(CurrDir,Name);
    Clip->share=1;
    Clip->property=0;
    }
    else if(Item&&Item->ImageIndex==0)  //在ListView中复制目录
    {
         Name=Item->Caption;
         Clip->dirpoint=LocateDir(CurrDir,Name);
         Clip->share=2;
         Clip->property=0;
    }
    else if(TreeView1->Selected){          //在TreeView中复制目录
           Name=CurrDir->name;
           if(Name=="Root"){ShowMessage("根文件夹不可复制!");return;}
           Clip->dirpoint=CurrDir;
           Clip->share=2;
           Clip->property=0;
    }
        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton5Click(TObject *Sender)
{
              //剪切功能
TListItem *Item;
  Item=ListView1->Selected;
  String Name;
  if(Item&&Item->ImageIndex==1)     //剪切文件
    {
    Name=Item->Caption;
    Clip->filenode=LocateFile(CurrDir,Name);
    if(CurrUser!="root"&&CurrUser!=Clip->filenode->user){
ShowMessage("你无限权剪切该文件");return;}
    Clip->share=1;
    Clip->property=1;
    }

    else if(Item&&Item->ImageIndex==0)  //在ListView中剪切目录
    {
         Name=Item->Caption;
         Clip->dirpoint=LocateDir(CurrDir,Name);
         if(CurrUser!="root"&&CurrUser!=Clip->dirpoint->user){
         ShowMessage("你无限权剪切该文件");return;}
         Clip->share=2;
         Clip->property=1;
    }
    else if(TreeView1->Selected){         //在TreeView中剪切目录
           Name=CurrDir->name;
           if(Name=="Root"){ShowMessage("根文件夹不可剪切!");return;}
           Clip->dirpoint=CurrDir;
            if(CurrUser!="root"&&CurrUser!=Clip->dirpoint->user){
            ShowMessage("你无限权剪切该文件");return;}
           Clip->share=2;
           Clip->property=1;
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton2Click(TObject *Sender)
{

  TListItem *Item;
  String name;
  Item=ListView1->Selected;
  if(Item&&Item->ImageIndex==0){  //双击目录
  name=Item->Caption;
  CurrDir=LocateDir(CurrDir,name);
  ShowDir(CurrDir);
  FilePath+=CurrDir->name+"\\";
  ComboBox1->Text=FilePath;
  CurrNode->Expand(false);
  int i=0;
  while(CurrNode->Item[i]->Text!=name)i++;
  CurrNode=CurrNode->Item[i];
  CurrNode->Selected=true;
  }
  else if(Item&&Item->ImageIndex==1){    //双击文件
  name=Item->Caption;
  FILENODE file=LocateFile(CurrDir,name);
  ////////////////////////////////////////////////////
  Form6->Sname->Caption=file->name;
  Form6->Stype->Caption=file->name.SubString(file->name.Length()-2,3)+"文件";
  Form6->Slen->Caption=IntToStr(file->length)+"KB";
  if(!file->property)Form6->Spro->Caption="只读";//属性
          else Form6->Spro->Caption="允许读写";
  if(!file->share)Form6->Ssh->Caption="禁止共享";     //共享
         else Form6->Ssh->Caption="允许共享";
  Form6->Suser->Caption=file->user;
  Form6->Sdate->Caption=file->date;
   Form6->Spath->Caption=FilePath+file->name;
  Form6->ShowModal();
  //////////////////////////////////////////////////////
  }        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton16Click(TObject *Sender)
{

if(CurrUser!="root"&&CurrUser!=CurrDir->user&&CurrDir->property==0){
ShowMessage("你无限权在此目录下创建文件夹");return;}
Form4->Tag=0;
Form4->EditName->Clear();
Form4->EditName->Enabled=true;
Form4->Caption="新建文件夹";
Form4->ShowModal();
 String name;
  int share=0;

  if(Form4->Tag)
     {
       name=Form4->EditName->Text;
       if(Form4->CheckSh->Checked)share=1;
       if(CreateDir(CurrDir,name,CurrUser,Form4->Property->ItemIndex,share)){
       TTreeNode *t=TreeView1->Items->AddChild(CurrNode,name);
       t->SelectedIndex=2;
       CurrNode->Expand(false);
       ShowDir(CurrDir);
       }
       }        
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton1Click(TObject *Sender)
{
  //新建文件
if(CurrUser!="root"&&CurrUser!=CurrDir->user&&CurrDir->property==0){
ShowMessage("你无限权在此目录下创建文件");return;}
Form3->Tag=0;
Form3->EditName->Clear();
Form3->EditLength->Clear();
Form3->TypeBox->ItemIndex=0;
Form3->TypeBox->Enabled=true;
Form3->EditName->Enabled=true;
Form3->EditLength->Enabled=true;
Form3->Caption="新建文件夹";
Form3->ShowModal();
 String  type,name;
  int share=0;
  int length;

  if(Form3->Tag)
     {
       name=Form3->EditName->Text;
       length=Form3->EditLength->Text.ToInt();
       switch (Form3->TypeBox->ItemIndex)
       {case 0:type=".txt";break;
        case 1:type=".mp3";break;
        case 2:type=".avi";break;
        case 3:type=".cpp";break;
        case 4:type=".jpg";break;
        default :type=".dat";break;
        }
        if(Form3->CheckSh->Checked)share=1;
       if(CreateFile(CurrDir,name+type,CurrUser,length,Form3->Property->ItemIndex,share))
       ShowDir(CurrDir);
       }
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton20Click(TObject *Sender)
{
  //管理用户
MFD m=Mfd->Next->Next;
Form8->ComboBox1->Clear();
while(m){
Form8->ComboBox1->Items->Add(m->user);
m=m->Next;
}
Form8->ShowModal();
}
//---------------------------------------------------------------------------

void __fastcall TForm2::ToolButton21Click(TObject *Sender)
{
if(CurrDir->father){
CurrDir=CurrDir->father;
ShowDir(CurrDir);
CurrNode=CurrNode->Parent;
CurrNode->Selected=true;
OutPath(CurrNode);
}
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -