WPF 多线程处理(5)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF 多线程处理(5)

WPF 多线程处理(5)

 2013/10/17 21:24:33  风清扬 No.1  博客园  我要评论(0)
  • 摘要:WPF多线程处理(1)WPF多线程处理(2)WPF多线程处理(3)WPF多线程处理(4)WPF多线程处理(5)WPF多线程处理(6)项目的目录:以下是FileStroage的三个类:分别是FileHelper,FileInfos,Win32usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO;namespaceAutomatically.FileStroage
  • 标签:多线程 线程

 

  • WPF 多线程处理(1)
  • WPF 多线程处理(2)
  • WPF 多线程处理(3)
  • WPF 多线程处理(4)
  • WPF 多线程处理(5)
  • WPF 多线程处理(6)

 

 

 

 

项目的目录:

 

以下是FileStroage的三个类:
分别是FileHelper,FileInfos,Win32

class="code_img_closed" src="/Upload/Images/2013101721/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('c3e23e36-d765-4378-a7ab-8fa6fe55f76e',event)" src="/Upload/Images/2013101721/2B1B950FA3DF188F.gif" alt="" />
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Automatically.FileStroage
{
    public class FileHelper
    {
        public static FileInfos GetFileInfo(string path)
        {
            var fileInfos = new FileInfos();
            FileInfo fi = new FileInfo(path);
            fileInfos.Icon = Win32.GetIcon(path, true);
            fileInfos.Name = fi.Name;
            fileInfos.Path = fi.FullName;
            fileInfos.Size = fi.Length;
            return fileInfos;
        }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace Automatically.FileStroage
{
    public class FileInfos
    {
        public Icon Icon { get; set; }

        public string Name { get; set; }

        public string Path { get; set; }

        public long Size { get; set; }
    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;

namespace Automatically.FileStroage
{
    public class Win32
    {  
        [DllImport("Shell32.dll")]   
        private static extern int SHGetFileInfo   
        (   
            string   pszPath,   
            uint   dwFileAttributes,   
            out   SHFILEINFO   psfi,   
            uint   cbfileInfo,   
            SHGFI   uFlags   
        );   
    
       [StructLayout(LayoutKind.Sequential)]   
       private   struct  SHFILEINFO   
       {   
            public   SHFILEINFO(bool   b)   
            {   
                hIcon=IntPtr.Zero;iIcon=0;dwAttributes=0;szDisplayName="";szTypeName="";   
            }   
            public   IntPtr   hIcon;   
            public   int   iIcon;   
            public   uint   dwAttributes;   
            [MarshalAs(UnmanagedType.LPStr,   SizeConst=260)]   
            public   string   szDisplayName;   
            [MarshalAs(UnmanagedType.LPStr,   SizeConst=80)]   
            public   string   szTypeName;   
       };

       private Win32()   
       {   
       }   
    
       private   enum   SHGFI   
       {   
            SmallIcon       =   0x00000001,   
            LargeIcon       =   0x00000000,   
            Icon         =   0x00000100,   
            DisplayName       =   0x00000200,   
            Typename       =   0x00000400,   
            SysIconIndex     =   0x00004000,   
            UseFileAttributes   =   0x00000010   
       }   

       public  static  Icon GetIcon(string   strPath,   bool   bSmall)   
       {   
            SHFILEINFO   info   =   new   SHFILEINFO(true);   
            int   cbFileInfo   =   Marshal.SizeOf(info);   
            SHGFI   flags;   
            if   (bSmall)   
              flags   =   SHGFI.Icon|SHGFI.SmallIcon|SHGFI.UseFileAttributes;   
            else   
              flags   =   SHGFI.Icon|SHGFI.LargeIcon|SHGFI.UseFileAttributes;   
    
            SHGetFileInfo(strPath,   256,   out   info,(uint)cbFileInfo,   flags);   
            return   Icon.FromHandle(info.hIcon);   
       }  
    }
}
View Code

 

下一篇:WPF 多线程处理(6)

上一篇:WPF 多线程处理(4)

上一篇: 优化特性(Attribute)性能 下一篇: 没有下一篇了!
发表评论
用户名: 匿名