以前的一个项目myTree中仿资源管理器功能实现,仿资源管理器功能实现,忘记的差不多了。可能是按照网络现成实例做的。

自定义功能函数:
     myExtractIcon(...)和SetIcon(...)函数功能是获取文件夹和文件的图标。
     GetDrive()  获取系统驱动器时调用。
     AddDirectories(...)   获得当前目录下的所有目录。填充树壮控件
     ListViewAB(...)  在大图标、小图标、详细列表切换时调用
     InitList(...)   填充列表框
     InitList2(...)  同InitList一样,只是参数不一样。在列表框中双击目录时调用。
 
  主要事件
1:TreeView控件的BeforeExpand事件;该事件是TreeView控件的节点展开时发生。
2:TreeView控件的AfterSelect事件;该事件是TreeView控件的节点选中时发生。
3:ListView控件的ItemActivate事件。该事件是在ListView控件中双击选中的文件时发生。

  在GetDrive()函数中将"G"光盘符,换成你电脑中的光盘符。
                                
    本程序主要应用了C#中的DirectoryInfo和FileInfo类。使用了2个获取文件图标的API函数。
代码如下:

仿资源管理器功能实现private System.Windows.Forms.TreeView treeView1;
仿资源管理器功能实现
private System.Windows.Forms.ListView listView1;
仿资源管理器功能实现
仿资源管理器功能实现 [DllImport(
"Shell32.dll")] 
仿资源管理器功能实现  
public static extern int ExtractIcon(IntPtr h,string strx,int ii);
仿资源管理器功能实现
仿资源管理器功能实现  [DllImport(
"Shell32.dll")] 
仿资源管理器功能实现  
public static extern int SHGetFileInfo(string pszPath,uint dwFileAttributes,ref SHFILEINFO psfi,uint cbFileInfo, uint uFlags);
仿资源管理器功能实现
仿资源管理器功能实现  
public struct SHFILEINFO

相关文章: