文件名称的问题

lzcq 2000-08-28 02:59:00
小弟我最近在做一个类似资源管理器的东西
基本上完工时,发现如果文件类型是已经注册的
通过API获取文件名称就没有扩展名,详见资源管理
那么如何获得扩展名了
...全文
247 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
35739关注!
Firing_Sky 2000-08-28
  • 打赏
  • 举报
回复
用FindFirst,FindNext和FindClose来处理
alin 2000-08-28
  • 打赏
  • 举报
回复
哦,又错了,应是ParentNode.TreeView.AddChild
alin 2000-08-28
  • 打赏
  • 举报
回复
把FileImportTreeViewBookTitle改为
ParentNode.TreeView.AddChildObject
^_^
alin 2000-08-28
  • 打赏
  • 举报
回复
调用方法
ImportDirToTreeView('C:\','*.*',TreeView.Selected);
alin 2000-08-28
  • 打赏
  • 举报
回复
给你一个完整的递归函数,可以在TTREEVIEW中作为目录树,试试
procedure ImportDirToTreeView(var Dir,Mask:string;ParentNode:TTreeNode);
var
SRec: TSearchRec;
ANode:TTreeNode;
Path,Fn,Fx,TitleStr:string;
retval:integer;
begin
Path:=Dir; //搜索路径

retval := FindFirst( Dir+Mask,faAnyFile,SRec); //开始
While retval=0 Do
Begin
if IsBreakWhile then Break;
If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then //是文件
begin
Application.ProcessMessages;
Fn:=SRec.Name; //取文件名
TitleStr :=Fn;
Fx :=UpperCase(ExtractFileExt(Fn)); //取扩展名
Delete(TitleStr,Length(TitleStr)-3,4); //取文件前名称
ANode :=FileImportTreeViewBookTitle(ParentNode,TitleStr,Fx); //建立TREEVIEW标题
end;
retval := FindNext(SRec); //找下一个
End;
SysUtils.FindClose(SRec);
retval:=FindFirst(path+'*.*',faDirectory,SRec); //目录搜索
While retval=0 Do
Begin
if IsBreakWhile then Break;
If (SRec.Attr and faDirectory)<>0 Then //是目录
If (SRec.Name <> '.') and (SRec.Name <> '..') Then
Begin
Application.ProcessMessages;
Path:=Path+SRec.Name+'\'; //新路径
Fn:=SRec.Name; //取文件名
TitleStr :=Fn;
Fx :=UpperCase(ExtractFileExt(Fn)); //取扩展名
Delete(TitleStr,Length(TitleStr)-3,4); //取文件前名称
ANode :=FileImportTreeViewBookTitle(ParentNode,TitleStr,'DIR'); //建立TREEVIEW标题
ImportDirToTreeView(path,mask,ANode); //当前标题为主标题递归
End;
retval := FindNext(SRec); //下一个
End;
SysUtils.FindClose(SRec);
end;
lzcq 2000-08-28
  • 打赏
  • 举报
回复
已知:
文件的的名称,大小,属性,修改时间(参见资源管理器)
求解:
文件的完整名称(如果文件类型已知,给出的文件名称不包括扩展名)
lzcq 2000-08-28
  • 打赏
  • 举报
回复
IShellFolder::GetDisplayNameOf
U皮特U 2000-08-28
  • 打赏
  • 举报
回复
你用什么API函数?用CFileFind或FindFirstFile系列的函数返回的文件名都带扩展名的。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧