使用NPOI读取Thumbs.dll文件(1)

    thumbs.dll 是xp系统下的缩略图的文件(因为用的是windows7,找了半天也没有看到这个文件,所以猜测在WIN7中也许用的别的文件方式存储),一般存放在图片目录下,之所以说是另类读取,因为我们用的是一个开源组件叫做NPOI组件(园子里的人应该都知道吧),这个是tony qu和另外两个人写的一个组件,主要是用于对excel文件的操作,前几天用这个组件写了一个文件抓取的工具,感觉用下来比较轻松,关键点就是不用做数据连接,直接文件操作,这样给我们带来了很大的方便。还是回归正题吧,之所以我们可以用NPOI来操作thumbs.dll 是因为它是OLE2文档。我们可以先用POIFS Browser这个开源工具来判断当前这个文件是否是OLE2文档。

   

   由这个工具我们可以看到thumbs.dll是一个标准的OLE2文件,这样我们就可以通过NPOI来读取这个文件,首先我们要先从NOPI这个地址下载最新的DLL,然后我们使用的工具是VS2008 SP1。

    1.我们先引用4个DLL:

   

        

    2.引用好相应的DLL我们就可以写相应的代码了

    

ExpandedBlockStart.gif 代码
namespace  ConsoleApplicationNPOI
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {

            
using  (var stream  =  File.OpenRead( " F:\\未整理\\Thumbs.db " ))
            {
                POIFSFileSystem _currentFileSystem 
=   new  POIFSFileSystem(stream);

                DirectoryNode node 
=  _currentFileSystem.Root;

                var entries 
=  node.Entries;

                DocumentNode en;

                
string  s  =   string .Empty;

                
while  (entries.MoveNext())
                {
                    en 
=  entries.Current  as  DocumentNode;

                    var viewableArray 
=  en.Document.ViewableArray;

                    s 
+=  viewableArray.GetValue( 0 ).ToString();

                    
break ;
                }
                Console.Write(s);
                Console.ReadLine();
            }
        }
    }
}

 

 

    3.让我们看看运行的结果:

    

     

    4.从运行结果我们知道缩略图应该是以JFIF格式存储的,JFIF是图片的存储格式之一,由JPEG演变而来。至于怎么将JFIF格式转为JPEG,我们将在后续为大家呈现。

    从代码我们可以发现,只是简单的几个调用,我们就可以将文件的输出流都出来,不过NPOI的功能远远不止于此,它的功能更为强大,我只是用到了其中的小小一部分。如果你想更为深入的了解,可以通过http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html 这个链接学习到更多的功能。

转载于:https://www.cnblogs.com/wangqi/archive/2010/01/31/1660504.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值