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

📄 file.cpp

📁 多级目录文件管理多级目录文件管理多级目录文件管理
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::R2Click(TObject *Sender)
{
        FindAddr();
        ListRefresh();
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::D3Click(TObject *Sender)
{
        TListItem *ListItem;
        UFD *Delfile,*Prefile;
        MFD *Delfolder,*Prefolder;
        TTreeNode *TreeNode;
        ListItem=ListView->Selected;
        if(ListItem==NULL)  return;
        String str=ListItem->Caption;
        FindAddr();
        if(ListItem->ImageIndex==1){
           Prefile=mpos->file;
           if(Prefile!=NULL){
           Delfile=Prefile->next;
           if(Prefile->filename==ListItem->Caption){
                if(mpos->file->next==NULL)
                  {mpos->file=NULL;free(Prefile);}
                else
                  {mpos->file=Delfile;free(Prefile);}
                goto next;
             }
           }
           for(;Delfile;Prefile=Prefile->next,Delfile=Delfile->next)
           {
             if(mpos->file==NULL) break;
             if(Delfile->filename==ListItem->Caption)
             { Prefile->next=Delfile->next;free(Delfile);break;}
           }
next:      ListRefresh();
       }
      else{
             Prefolder=mpos->folder;
             if(Prefolder!=NULL){
             Delfolder=Prefolder->next;
             if(Prefolder->name==ListItem->Caption){
                if(mpos->folder->next==NULL)
                  {mpos->folder=NULL;free(Prefolder);}
                else
                  {mpos->folder=Delfolder;free(Prefolder);}
                goto follow;
             }
             }
             for(;Delfolder;Prefolder=Prefolder->next,Delfolder=Delfolder->next)
             {
               if(mpos->folder==NULL) break;
               if(Delfolder->name==ListItem->Caption)
               { Prefolder->next=Delfolder->next;free(Delfolder);break;}
             }
 follow:     ListRefresh();
             FindTNode();
             for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
             {
               if(TreeNode==NULL) return;
               if(TreeNode->Text==str) {TreeNode->Delete();return;}
             }
             if(TreeNode==NULL)  return;
      }
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::O1Click(TObject *Sender)
{
        ListViewDblClick(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::N2Click(TObject *Sender)
{
        F2Click(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::N3Click(TObject *Sender)
{
        N9Click(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::D1Click(TObject *Sender)
{
        D3Click(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::R1Click(TObject *Sender)
{
        N15Click(Sender);        
}
//---------------------------------------------------------------------------



void __fastcall Tmainfrm::X1Click(TObject *Sender)
{
        TListItem *ListItem;
        ListItem=ListView->Selected;
        if(ListItem==NULL) return;
        addrstr=Comboaddr->Text;
        FindAddr();
        if(ListItem->ImageIndex==1){
        flag=0;
        cutfile=mpos->file;
        if(cutfile==NULL) return;
        while(cutfile!=NULL)
        {
          if(cutfile->filename==ListItem->Caption)  return;
          cutfile=cutfile->next;
        }
        }

        else{
        flag=1;
        cutfolder=mpos->folder;
        if(cutfolder==NULL) return;
        while(cutfolder!=NULL)
        {
          if(cutfolder->name==ListItem->Caption) return;
          cutfolder=cutfolder->next;
        }
        }
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::C3Click(TObject *Sender)
{
        TListItem *ListItem;
        UFD *p;
        MFD *q;
        ListItem=ListView->Selected;
        if(ListItem==NULL) return;
        FindAddr();
        if(ListItem->ImageIndex==1){
        flag=2;
        p=mpos->file;
        if(p==NULL) return;
        while(p!=NULL)
        {
          if(p->filename==ListItem->Caption){
            copyfile=(UFD *)malloc(sizeof(UFD));
            copyfile->filename=p->filename;
            strcpy(copyfile->text,p->text);
            copyfile->pt=p->pt;
            copyfile->len=p->len;
            copyfile->parent=NULL;
            copyfile->next=NULL;
            return;
          }
          p=p->next;
        }
        }

}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::P2Click(TObject *Sender)
{
        String bkstr;
        UFD *ffile;
        MFD *ffolder;
        TTreeNode *TreeNode;
        bkstr=Comboaddr->Text;
        if(flag==4) return;
        if(flag==0){
        if(cutfile->parent==NULL)
        {
           Comboaddr->Text=addrstr;
           FindAddr();
           Comboaddr->Text=bkstr;
           if(cutfile->next==NULL)  mpos->file=NULL;
           else                     mpos->file=cutfile->next;
        }
        else{
           if(cutfile->next==NULL)   cutfile->parent->next=NULL;
           else {cutfile->parent->next=cutfile->next;cutfile->next->parent=cutfile->parent;}
        }
        FindAddr();
        if(mpos->file==NULL) {mpos->file=cutfile;cutfile->parent=NULL;cutfile->next=NULL;}
        else{
           ffile=mpos->file;
           if(ffile->filename==cutfile->filename)
           {
             ShowMessage("文件同名,覆盖?");
             cutfile->parent=NULL;
             cutfile->next=ffile->next;
             mpos->file=cutfile;
             free(ffile);
             return;
           }
           while(ffile->next!=NULL){
           ffile=ffile->next;
           if(ffile->filename==cutfile->filename)
           {
              ShowMessage("文件同名,覆盖?");
              cutfile->parent=ffile->parent;
              cutfile->next=ffile->next;
              ffile->parent->next=cutfile;
              free(ffile);
              return;
           }
          }
           ffile->next=cutfile;
           cutfile->parent=ffile;
           cutfile->next=NULL;
           }
           flag=4;
           ListRefresh();
           return;
        }

        if(flag==1){
        Comboaddr->Text=addrstr;
        FindTNode();
        Comboaddr->Text=bkstr;
        for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
        {
         if(TreeNode->Text==cutfolder->name) {TreeNode->Delete();break;}
        }
        FindAddr();
        if(cutfolder->parent->folder==cutfolder){
        if(cutfolder->next==NULL) cutfolder->parent->folder=NULL;
        else                      cutfolder->parent->folder=cutfolder->next;
        }
        else{
            if(cutfolder->next==NULL)  cutfolder->parent->next=NULL;
            else {cutfolder->parent->next=cutfolder->next;cutfolder->parent=cutfolder->parent;}
        }

        FindTNode();
        TreeView->Items->AddChild(SelNode,cutfolder->name);
        if(mpos->folder==NULL) {mpos->folder=cutfolder;cutfolder->parent=mpos;cutfolder->next=NULL;}
        else{
           ffolder=mpos->folder;
           if(ffolder->name==cutfolder->name)
           {
             ShowMessage("文件夹同名,覆盖?");
             cutfolder->parent=ffolder->parent;
             cutfolder->next=ffolder->next;
             ffolder->parent->folder=cutfolder;
             free(ffolder);
             return;
           }
           while(ffolder->next!=NULL)
           {
             ffolder=ffolder->next;
             if(ffolder->name==cutfolder->name)
             {
               ShowMessage("文件夹同名,覆盖?");
               cutfolder->parent=ffolder->parent;
               cutfolder->next=ffolder->next;
               ffolder->parent->next=cutfolder;
               free(ffolder);
               return;
             }
           }
           ffolder->next=cutfolder;
           cutfolder->parent=ffolder;
           cutfolder->next=NULL;
           }
           flag=4;
           ListRefresh();
           return;
         }

         if(flag==2){
         FindAddr();
         if(mpos->file==NULL) mpos->file=copyfile;
         else{
           ffile=mpos->file;
           if(ffile->filename==copyfile->filename)
           {
            ShowMessage("文件同名,覆盖?");
            copyfile->parent=NULL;
            copyfile->next=ffile->next;
            mpos->file=copyfile;
            free(ffile);
            return;
           }
           while(ffile->next!=NULL){
           ffile=ffile->next;
           if(ffile->filename==copyfile->filename)
           {
            ShowMessage("文件同名,覆盖?");
            copyfile->parent=ffile->parent;
            copyfile->next=ffile->next;
            ffile->parent->next=copyfile;
            free(ffile);
            return;
           }
           }
           ffile->next=copyfile;
           copyfile->parent=ffile;
           }
           ListRefresh();
           return;
        }





}
//---------------------------------------------------------------------------



void __fastcall Tmainfrm::M3Click(TObject *Sender)
{
       TListItem *ListItem;
       UFD *p,*f;
       MFD *q,*r;
       TTreeNode *TreeNode;
       ListItem=ListView->Selected;
       if(ListItem==NULL) return;
       FindAddr();
       if(ListItem->ImageIndex==1){
       if(mpos->file==NULL) return;
       for(p=mpos->file;p!=NULL;p=p->next)
       {
        if(p->filename==ListItem->Caption){
        AnsiString str=InputBox("重命名","输入新文件名","新文件");
        for(f=mpos->file;f!=NULL;f=f->next)
        {
          if(f->filename==str) {ShowMessage("文件同名,无法重命名");return;}
        }
        p->filename=str;
        ListRefresh();
        return;
        }
       }
       }
       else{
            if(mpos->folder==NULL) return;
            for(q=mpos->folder;q!=NULL;q=q->next)
            {
              if(q->name==ListItem->Caption){
              AnsiString str=InputBox("重命名","输入新文件夹名","新文件夹");
              for(r=mpos->folder;r!=NULL;r=r->next)
              {
               if(r->name==str){ShowMessage("文件夹同名,无法重命名");return;}
              }
              FindTNode();
              for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
              {
               if(TreeNode->Text==ListItem->Caption) {TreeNode->Text=str;break;}
              }
              q->name=str;
              ListRefresh();
              return;
              }
            }
       }




}
//---------------------------------------------------------------------------


void __fastcall Tmainfrm::M1Click(TObject *Sender)
{
        M3Click(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::B1Click(TObject *Sender)
{
         ListView->ViewStyle=vsIcon;        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::S1Click(TObject *Sender)
{
        ListView->ViewStyle=vsSmallIcon;        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::L1Click(TObject *Sender)
{
        ListView->ViewStyle=vsList;        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::T1Click(TObject *Sender)
{
        X1Click(Sender);       
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::C2Click(TObject *Sender)
{
        C3Click(Sender);        
}
//---------------------------------------------------------------------------

void __fastcall Tmainfrm::P1Click(TObject *Sender)
{
        P2Click(Sender);        
}
//---------------------------------------------------------------------------


void __fastcall Tmainfrm::N5Click(TObject *Sender)
{
        helpfrm->Show();        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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