• 大小: 10.42MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-13
  • 语言: 其他
  • 标签: 虚拟磁盘  C++  项目  

资源简介

.eap文件使用Enterprise architect打开。 项目是模拟cmd功能实现的,主要是在虚拟文件系统中实现cd、dir、mkdir、rmdir、copy、compare、del等命令。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “CdCmd.h“

bool CdCmd::Execute(Dirobject* rootDir MyListject>* workingPath)
{
  bool flag = true;
  
  Dirobject* curPosition = rootDir;
  Dirobject* dirNode = NULL;
  MyString tempDirName;

  //路径类型
  int dirType = this->path1Type;
  switch(dirType)
  {
  case msg.FLOD_PATH://相对路径
    //遍历workingPath定位到当前目录
    workingPath->InitList();
    while(workingPath->GetNextNode() != NULL)
    {
      tempDirName = workingPath->GetCurNode()->GetDirName();
      curPosition = curPosition->Find(tempDirName);
      if(curPosition == NULL)
      {
        flag = false;
        break;
      }
    }
    //遍历pathElesList找到指定位置,没有找到,返回false
    if(flag)
    {
      pathElesList.InitList();
      while(pathElesList.GetCurNode() != NULL)
      {
        tempDirName = pathElesList.GetCurNode()->GetDirName();
        if(curPosition->Find(tempDirName)!=NULL)
        {
          //更新工作目录
          Dirobject* dirNode = new VirtualFold(tempDirName);
          workingPath->AddNode(*dirNode);
        }
        else
        {
          //路径不存在
          flag = false;
          break;
        }
        pathElesList.GetNextNode();
      }
    }
    break;
  case msg.FLOD_WHOLE_PATH://绝对路径
    workingPath->Empty();

    pathElesList.InitList();
    //添加盘符
    tempDirName = pathElesList.GetCurNode()->GetDirName();
    dirNode = new VirtualFold(tempDirName);
    workingPath->AddNode(*dirNode);

    while(pathElesList.GetNextNode() != NULL)
    {
      tempDirName = pathElesList.GetCurNode()->GetDirName();
      if(curPosition->Find(tempDirName)!=NULL)
      {
        //创建目录
        dirNode= new VirtualFold(tempDirName);
        workingPath->AddNode(*dirNode);

        curPosition = curPosition->Find(tempDirName);
      }
      else
      {
        flag = false;
        break;
      }
    }
    break;
  case msg.BACK_TO_PARENT://返回到上一目录 
    workingPath->InitList();
    while(workingPath->GetNextNode() != NULL)
    {
      dirNode = workingPath->GetCurNode();
    }
    workingPath->DelNode(*dirNode);

    break;

  case msg.BACK_TO_ROOT://返回到根目录
    workingPath->InitList();
    //添加盘符
    tempDirName = workingPath->GetCurNode()->GetDirName();
    dirNode = new VirtualFold(tempDirName);
    workingPath->Empty();
    workingPath->AddNode(*dirNode);
    break;
  default:
    flag = false;
  }  

  if(flag)
  {
    std::cout << “命令执行成功“ << std::endl;
  }
  else
  {
    std::cout << “命令执行失败“ << std::endl;
  }
  return flag;
}
void CdCmd::SetPath1Type(int path1Type)
{
  this->path1Type = path1Type;
}

int CdCmd::GetPath1Type()
{
  return path1Type;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      67584  2015-02-15 14:38  虚拟磁盘项目\1虚拟磁盘项目——任务.doc

     文件    2803712  2015-02-15 00:12  虚拟磁盘项目\VirtualDisk.eap

     文件     114688  2015-02-15 14:03  虚拟磁盘项目\代码\virtualDiskSys\Debug\virtualDiskSys.exe

     文件     802340  2015-02-15 14:03  虚拟磁盘项目\代码\virtualDiskSys\Debug\virtualDiskSys.ilk

     文件    1108992  2015-02-15 14:03  虚拟磁盘项目\代码\virtualDiskSys\Debug\virtualDiskSys.pdb

     文件       2798  2015-02-13 18:05  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CdCmd.cpp

     文件        325  2015-02-13 14:29  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CdCmd.h

     文件        242  2015-02-13 14:29  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\Cmd.cpp

     文件        416  2015-02-13 16:14  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\Cmd.h

     文件       1076  2015-02-12 20:27  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdElement.cpp

     文件        324  2015-02-12 17:27  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdElement.h

     文件       2017  2015-02-15 12:13  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdFactory.cpp

     文件        528  2015-02-13 11:15  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdFactory.h

     文件        249  2015-02-13 12:03  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdFormatCheck.cpp

     文件        607  2015-02-13 12:03  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdFormatCheck.h

     文件       1341  2015-02-13 11:34  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdParaAnalysis.cpp

     文件        382  2015-02-13 11:15  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdParaAnalysis.h

     文件       2519  2015-02-14 12:34  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdSplit.cpp

     文件        334  2015-02-12 17:50  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdSplit.h

     文件       1261  2015-02-14 15:21  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdTypeAnalysis.cpp

     文件        203  2015-02-12 21:29  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CmdTypeAnalysis.h

     文件       6901  2015-02-15 12:36  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CompareCmd.cpp

     文件        733  2015-02-15 07:39  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CompareCmd.h

     文件      15442  2015-02-15 11:38  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CopyCmd.cpp

     文件       1082  2015-02-15 08:58  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CopyCmd.h

     文件        966  2015-02-15 10:25  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CreateNewCmd.cpp

     文件        602  2015-02-15 10:24  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\CreateNewCmd.h

     文件       8556  2015-02-15 14:03  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\Debug\BuildLog.htm

     文件      57114  2015-02-15 12:29  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\Debug\CdCmd.obj

     文件      27116  2015-02-15 12:29  虚拟磁盘项目\代码\virtualDiskSys\virtualDiskSys\Debug\Cmd.obj

............此处省略97个文件信息

评论

共有 条评论