我定义了一个Icon对象,请问如何从系统中取得文件夹图标好赋值给这个对象?

解决方案 »

  1.   

    javax.swing.filechooser.FileSystemView;FileSystemView fsv = FileSystemView.getFileSystemView();
    Icon icon = fsv.getSystemIcon(new File("C:/windows"));
      

  2.   

    http://www.cnblogs.com/wdxinren/archive/2005/01/03/85655.html如果直接获打开某ICON文件,可以使用
    System.Drawing.Icon icon = System.Drawing.Icon.ExtractAssociatedIcon( "文件名" );
      

  3.   

    sun.awt.shell.ShellFolder shellFolder=null;
    try {
    shellFolder = sun.awt.shell.ShellFolder.getShellFolder(file);
    } catch (FileNotFoundException e1) {
    e1.printStackTrace();
    }
    Icon icon=new ImageIcon(shellFolder.getIcon(true),shellFolder.getFolderType());//获取文件或目录图标
      

  4.   

    楼上的兄弟是不是JAVA的代码
      

  5.   

    good good study,day day up
      

  6.   

       [StructLayout(LayoutKind.Sequential)]
            public struct SHFILEINFO
            {
                public IntPtr hIcon;
                public IntPtr iIcon;
                public uint dwAttributes;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
                public string szDisplayName;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
                public string szTypeName;
            }        /// <summary>   
            /// 返回系统设置的图标   
            /// </summary>   
            /// <param name="pszPath">文件路径 如果为"" 返回文件夹的</param>   
            /// <param name="dwFileAttributes">0</param>   
            /// <param name="psfi">结构体</param>   
            /// <param name="cbSizeFileInfo">结构体大小</param>   
            /// <param name="uFlags">枚举类型</param>   
            /// <returns>-1失败</returns>   
            [DllImport("shell32.dll")]
            public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref   SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);        public enum SHGFI
            {
                SHGFI_ICON = 0x100,
                SHGFI_LARGEICON = 0x0,
                SHGFI_USEFILEATTRIBUTES = 0x10
            }
            /// <summary>   
            /// 获取文件图标   
            /// </summary>   
            /// <param name="p_Path">文件全路径</param>   
            /// <returns>图标</returns>   
            public static Icon GetFileIcon(string p_Path)
            {
                SHFILEINFO _SHFILEINFO = new SHFILEINFO();
                IntPtr _IconIntPtr = SHGetFileInfo(p_Path, 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON | SHGFI.SHGFI_USEFILEATTRIBUTES));
                if (_IconIntPtr.Equals(IntPtr.Zero)) return null;
                Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon);
                return _Icon;
            }
            /// <summary>   
            /// 获取文件夹图标  
            /// </summary>   
            /// <returns>图标</returns>   
            public static Icon GetDirectoryIcon()
            {
                SHFILEINFO _SHFILEINFO = new SHFILEINFO();
                IntPtr _IconIntPtr = SHGetFileInfo(@"", 0, ref _SHFILEINFO, (uint)Marshal.SizeOf(_SHFILEINFO), (uint)(SHGFI.SHGFI_ICON | SHGFI.SHGFI_LARGEICON));
                if (_IconIntPtr.Equals(IntPtr.Zero)) return null;
                Icon _Icon = System.Drawing.Icon.FromHandle(_SHFILEINFO.hIcon);
                return _Icon;
            }