CTreeCtl创建目录树

根目录文件:

m_strRootPath.Format(_T("%ssyswsp"), __main_home__);

m_strRootPath存放的是根目录文件路径。

例如:Windows\\:release\\:syswsp

BrowerFile(0, m_strRootPath);

 1 void UMSDirectoryTree::BrowerFile(long CallNum, CString strFiles)
 2 {
 3     CallNum++;
 4     CFileFind fFinder;
 5     strFiles += _T("\\*.*");
 6
 7     BOOL res = fFinder.FindFile(strFiles);
 8     while(res)
 9     {
10         res = fFinder.FindNextFile();
11         if(fFinder.IsDirectory()&&!fFinder.IsDots())
12         {
13             CString strFilesPath = fFinder.GetFilePath();
14             CString strFilesName = fFinder.GetFileName();
15             int pos = strFilesName.Find(_T("@"), 0);
16             m_strSelectNode = strFilesName.Mid(pos+1);
17             switch(CallNum)
18             {
19             case 1:
20                 m_strHTFir = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, NULL);
21                 break;
22             case 2:
23                 m_strHTSec = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFir);
24                 break;
25             case 3:
26                 m_strHTThr = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTSec);
27                 break;
28             case 4:
29                 m_strHTFou = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTThr);
30                 break;
31             case 5:
32                 m_strHTFif = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFou);
33                 break;
34             default:
35                 m_strHTSix = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFir);
36                 break;
37             }
38             BrowerFile(CallNum, strFilesPath);
39         }
40         else if(!fFinder.IsDirectory()&&!fFinder.IsDots())
41         {
42             CString strwspPath;
43             strwspPath = fFinder.GetFilePath();
44             CString strwspName = fFinder.GetFileName();
45             int pos = strwspName.Find((_T("@")), 0);
46             strwspName = strwspName.Mid(pos+1);
47             pos = strwspName.Find(_T("."), 0);
48             m_strSelectNode = strwspName.Left(pos);
49
50             switch(CallNum)
51             {
52             case 1:
53                 m_strHTRoot = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, NULL);
54                 break;
55             case 2:
56                 m_strHTEnd = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFir);
57                 break;
58             case 3:
59                 m_strHTEnd = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTSec);
60                 break;
61             case 4:
62                 m_strHTEnd = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTThr);
63                 break;
64             case 5:
65                 m_strHTEnd = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFou);
66                 break;
67             default:
68                 m_strHTSix = m_Tree.InsertItem(m_strSelectNode.GetString(), 0, 0, m_strHTFif);
69                 break;
70             }
71         }
72     }
73     fFinder.Close();
74 }

FindNextFiles()主要负责在每一级节点目录中寻找子目录,其返回值为非0,则表示还有子目录,返回值为0,则表示该级目录已经没有子目录了。

通过While()循环将遍历该级目录中所有的子目录。

While()循环体中将通过递归调用遍历下一级目录,并通过Switch分支结构将下一级所有目录插入上一级节点目录中,这样循环加递归调用将生成目录树。

时间: 2024-10-15 23:47:26

CTreeCtl创建目录树的相关文章

Word2013创建目录

1.写好文档内容后,将光标移到标题行,点击“开始”里的“样式”->“创建样式”,为该标题创建一个新的样式,同时点击“修改”,在打开的窗口中选择左下方的“格式”,进行标题格式的调整.依次可设定子标题的样式.然后为其他的(子)标题应用该样式. 2.将光标移到标题行,点击“引用”菜单中的“目录”->“添加文字”,将该标题文字添加到导航窗格中的目录列表,在添加时可根据该标题的层级,设定其级别. 3.点击“引用”菜单中的“目录”->“自动目录1”,即可自动根据导航窗格中的列表创建目录树. 备注:创

python 根据现有文件树创建文件树

# -*- coding: utf-8 -*- import os, errno def fileName(path):#获取文件夹 str = '' for i in range(1,len(path.split('\\'))): str+=path.split('\\')[i]+'\\' return str def mkdir_p(path): #创建目录树 try: os.makedirs(path) except OSError as exc: # Python >2.5 (excep

js实现目录树

第一步:HTML结构 1 <div class="folderDiv"> 2 <p>目录</p> 3 <ul class="folder"></ul> 4 </div> 第二步:CSS样式 1 /*目录树*/ 2 .folderDiv {width: 14%;float: left;height: auto;overflow: auto;border:1px solid #ccc;border-

windows7命令帮助大全

有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.BCDEDIT 设置启动数据库中的属性以控制启动加载.CACLS 显示或修改文件的访问控制列表(ACL).CALL 从另一个批处理程序调用这一个.CD 显示当前目录的名称或将其更改.CHCP 显示或设置活动代码页数.CHDIR 显示当前目录的名称或将其更改.CHKDSK 检查磁盘并显示状态报告.CHKNTFS 显示或修改启动时间

linux学习-常规命令使用4

linux文件系统管理 目录结构 文件有两类数据 元数据:metadata (装备属性)文件大小 文件名 如人的身高 数据:data linux 文件名不同颜色代表的含义: 蓝色:目录:绿色:可执行文件:红色:压缩文件:浅蓝色:链接文件:灰色:其他文件 文件系统结构回忆 / /boot:引导文件存放目录,内核文件,引导加载器 /bin:供所有用户使用的基本命令 /sbin:管理类基本命令 /lib:启动时程序以来的基本共享文件及内核模块文件 /lib64:专用于x86_64系统上的辅助共享库文件

linux基础命令(一)

符号链接 ln -s ~/projiect/haha/ link1 //在当前目录下创建指向~/projiect/haha目录的符号链接,对link1目录下的文件的操作即是对projiect目录下文件的操作 rm  link1     删除链接, 但~/projiect/haha/目录下的内容没有变 rm -r link1/    projiect/haha下的被文件删除   链接link1 没有被删除,显示:  无法删除"link": 不是目录 ln -s ~/projiect/ha

file、os、pickle

文件对象: 文本都是字节序列 var_name = open (file_name[mode,[bufsize]]) mode: r w a r+ w+ a+ b表示已二进制模式打开文件 rb wb ab rb+ wb+ ab+ 缓存: 0表示不使用缓存 负数表示使用系统默认的缓存 1表示使用缓存 整数表示使用大小的缓冲区 file.seek(offset[whence]) whence:起点 0:从文件头 1:从当前位置 2:从文件尾 offset:偏移量 f1.seek(0,2) 跳转到文件

Linux(CentOS)目录操作命令、文件操作命令、压缩解压缩命令

一.目录操作命令 ls命令 — 功能说明:显示文件和目录列表. — 命令格式:ls [参数] [<文件或目录> …] — 常用参数: -a : 不隐藏任何以“.”字符开始的条目. -b : 用八进制形式显示非打印字符. -R : 递归列出所有子目录. -d : 当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号链接. -F : 在条目后加上文件类型的指示符号(*, /, =, @, |,其中的一个). -l : 使用较长格式列出信息. -L : 当显示符号链接的文件信息时,显示符号链接

rpm包制作(一)

rpm介绍 rpm的全称是RedhatPackage Manager,常见的使用rpm软件包的系统主要有Fedora.CentOS.openSUSE.SUSE企业版.PCLinuxOS等.使用deb软件包后缀的类Debian系统最常见的有Debian.Ubuntu.Finnix等. 从软件运行的结构来说,一个软件主要可以分为三个部分:可执行程序.配置文件和动态库.当然还有可能会有相关文档.手册.供二次开发用的头文件以及一些示例程序等等.可执行文件是必须的,其他部分都是可选的. 制作rpm软件包的