社区
C++ Builder
帖子详情
如何显示当前驱动器的目录结构与内容?
jxpjb
2001-12-07 02:55:06
...全文
66
5
打赏
收藏
如何显示当前驱动器的目录结构与内容?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jxpjb
2001-12-07
打赏
举报
回复
我当然十分想要,我的邮件地址:jxpjb@sohu.com 谢了!(不知能否读取文件的图标?)
csz_cmy
2001-12-07
打赏
举报
回复
这是我的软件“文件管理器”的一部分TTreeView。
他能列出所有驱动器的所有文件夹!
还有TListView的文件列表这里没有。需要请联系。
csz_cmy
2001-12-07
打赏
举报
回复
void TMainForm::UpDataTree(void) //TTreeView:FromTree 在Form Create调用
{
int Drives=GetLogicalDrives();
Char *DriveRoot="A:\\";
char *DriveStr="A:";
int DriveF;
char Volume[256];
unsigned long SNo,Len,Flag;
TTreeNode *Node;
FromTree->Items->Clear();
for(int i=0;i<26;i++)
if((Drives>>i)&0x01)
{
DriveRoot[0]='A'+i;
DriveStr[0]=DriveRoot[0];
DriveF=GetDriveType(DriveRoot);
if(DriveF>=2&&DriveF<=6)
{
if(DriveF==2) StrCopy(Volume,"软盘");
else if(DriveF==6) StrCopy(Volume,"内存");
else GetVolumeInformation(DriveRoot,Volume,256,&SNo,&Len,&Flag,NULL,0);
Node=FromTree->Items->Add(NULL,AnsiString(Volume)+"("+DriveStr+")");
Node->ImageIndex=DriveF-2;
Node->SelectedIndex=DriveF-2;
FromTree->Items->AddChild(Node," ");
}
}
}
//---------------------------------------------------------------------------
bool NodeIsRoot(TTreeNode *Node)
{
return Node->Level==0;
}
AnsiString NodeToDir(TTreeNode *Node)
{
if(NodeIsRoot(Node)) return(NodeToStr(Node)+"\\");
return(NodeToDir(Node->Parent)+NodeToStr(Node)+"\\");
}
//---------------------------------------------------------------------------
void HasChildDir(TTreeNode *Node)
{
TSearchRec SRec;
if(FindFirst(NodeToDir(Node)+"*.*",faDirectory,SRec)==0)
{
if(SRec.Attr==faDirectory&&SRec.Name!="."&&SRec.Name!="..")
{
((TTreeView *)(Node->TreeView))->Items->AddChild(Node," ");
FindClose(SRec); return;
}
while(FindNext(SRec)==0)
if(SRec.Attr==faDirectory&&SRec.Name!="."&&SRec.Name!="..")
{
((TTreeView *)(Node->TreeView))->Items->AddChild(Node," ");
FindClose(SRec); return;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Expanding(TObject *Sender, TTreeNode *Node,
bool &AllowExpansion) //OnAExpanding 事件映射
{
TSearchRec SRec;
bool HasChild=false;
TTreeNode *CurNode;
TTreeNodes *Nodes=((TTreeView *)(Node->TreeView))->Items;
if(NodeIsRoot(Node)==false) Node->DeleteChildren();
if(FindFirst(NodeToDir(Node)+"*.*",faDirectory,SRec)==0)
{ if(SRec.Attr==faDirectory&&SRec.Name!="."&&SRec.Name!="..")
{
HasChild=true;
if(NodeIsRoot(Node)) Node->DeleteChildren();
CurNode=Nodes->AddChild(Node,SRec.Name);
CurNode->ImageIndex=5;
CurNode->SelectedIndex=6;
HasChildDir(CurNode);
}
while(FindNext(SRec)==0)
if(SRec.Attr==faDirectory&&SRec.Name!="."&&SRec.Name!="..")
{
if(HasChild==false)
{
HasChild=true;
if(NodeIsRoot(Node)) Node->DeleteChildren();
}
CurNode=Nodes->AddChild(Node,SRec.Name);
CurNode->ImageIndex=5;
CurNode->SelectedIndex=6;
HasChildDir(CurNode);
}
}
FindClose(SRec);
AllowExpansion=HasChild;
}
//---------------------------------------------------------------------------
AnsiString DirFolder(AnsiString &Dir)//逐层分离
{
int Pos=Dir.Pos("\\");
AnsiString Folder;
if(Pos==0)
{
Folder=Dir; Dir="";
return(Folder);
}
Folder=Dir.SubString(1,Pos-1);
Dir=Dir.SubString(Pos+1,Dir.Length()-Pos);
return(Folder);
}
void TMainForm::TreeSetDir(TTreeView *Tree,AnsiString Dir)//请调用
{
TTreeNodes *Nodes=Tree->Items;
TTreeNode *Node;
AnsiString Folder=DirFolder(Dir);
for(int i=0,j;i<Nodes->Count;i++)
{
Node=Nodes->Item[i];
if(Folder==NodeToStr(Node).UpperCase())
{
Node->Expanded=true;
while((Folder=DirFolder(Dir))!="")
{
for(j=0;j<Node->Count;j++)
if(Folder==NodeToStr(Node->Item[j]).UpperCase()) break;
if(j==Node->Count) break;
Node=Node->Item[j];
Node->Expanded=true;
}
Tree->Selected=Node;
return;
}
}
}
ciml
2001-12-07
打赏
举报
回复
专业的做法是shell编程
jxpjb
2001-12-07
打赏
举报
回复
我只能使用Win3.1下的控件
从驱动到应用层带你搭建基于ZYNQ+LINUX的视频采集和
显示
系统
本课程是基于LINUX系统的视频采集和
显示
系统的实战课,其中涉及的
内容
是机器视觉领域最基础也是最重要的
内容
,是每一个从事该领域的工程师都应该掌握的技术! 本课程的应用领域和背景是什么? 机器视觉领域...
Windows tree
显示
文件和
目录
为树状
结构
如果未指定
驱动器
或路径,此命令将
显示
以
当前
驱动器
的
当前
目录
开头的树
结构
。指定使用文本字符而不是图形字符来
显示
链接子
目录
的行。指定包含要
显示
其
目录
结构
的磁盘的
驱动器
。指定要
显示
其
目录
结构
的
目录
。
显示
每个...
windows下通过cmd命令符窗口查看文件
目录
结构
1)在cmd命令提示符窗口中进入准备操作的文件夹,也可以是整个
驱动器
的根
目录
2)获取
目录
结构
:在
当前
要操作的文件夹
目录
下输入命令tree,此时得到
目录
下树形的
目录
结构
。默认情况下只
显示
“文件夹”而不
显示
...
windows CMD生成文件夹树状图(tree)命令(以图形
显示
驱动器
或路径的文件夹
结构
)(linux tree命令、tree指令)(tree /f /a)(文件
结构
、
目录
结构
、文件树、
目录
树)
如: 也可以用相对路径: 省略.\也可以: 可以看到,上面只
显示
文件夹未能
显示
文件。我们继续看下面: ...参考文章1:Windows中CMD命令之Tree生成
目录
参考文章2:treer:命令行生成
目录
结构
的实用小工具......
Linux根
目录
下的
内容
在Linux下的
目录
结构
中,有一个最顶层的
目录
,到达这个
目录
之后,在进一步向上查找是不可以的,因为这一层
目录
已经是最顶层的
目录
了,这个
目录
就是Linux下的根
目录
。 ls …/… 到达根
目录
ls /到达根
目录
那么,...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章