测试代码
1 static void Main(string[] args)
2 {
3 FileStream stream = new FileStream("thumbs.db", FileMode.Open, FileAccess.Read);
4 POIFSFileSystem poifs = new POIFSFileSystem(stream);
5 var entries = poifs.Root.Entries;
6 //POIFSDocumentReader catalogdr = poifs.CreatePOIFSDocumentReader("Catalog");
7 //byte[] b1=new byte[catalogdr.Length-4];
8 //catalogdr.Read(b1,4,b1.Length);
9 //Dictionary<string, string> indexList = new Dictionary<string, string>();
10 //for (int j = 0; j < b1.Length; j++)
11 //{
12 // if(b1[0]
13 //}
14
15 while (entries.MoveNext())
16 {
17 DocumentNode entry = entries.Current as DocumentNode;
18 DocumentInputStream dr = poifs.CreateDocumentInputStream(entry.Name);
19
20 if (entry.Name.ToLower() == "catalog")
21 continue;
22
23 byte[] buffer = new byte[dr.Length];
24 dr.Read(buffer);
25 int startpos = 0;
26
27 //detect jfif header
28 for (int i = 3; i < buffer.Length; i++)
29 {
30 if (buffer[i - 3] == 0xFF
31 && buffer[i - 2] == 0xD8
32 && buffer[i - 1] == 0xFF
33 && buffer[i] == 0xE0)
34 {
35 startpos = i - 3;
36 break;
37 }
38 }
39 if (startpos == 0)
40 continue;
41
42 FileStream jpeg = File.Create(entry.Name + ".jpeg");
43 jpeg.Write(buffer, startpos, buffer.Length - startpos);
44 jpeg.Close();
45 }
46
47 stream.Close();
48 }
2 {
3 FileStream stream = new FileStream("thumbs.db", FileMode.Open, FileAccess.Read);
4 POIFSFileSystem poifs = new POIFSFileSystem(stream);
5 var entries = poifs.Root.Entries;
6 //POIFSDocumentReader catalogdr = poifs.CreatePOIFSDocumentReader("Catalog");
7 //byte[] b1=new byte[catalogdr.Length-4];
8 //catalogdr.Read(b1,4,b1.Length);
9 //Dictionary<string, string> indexList = new Dictionary<string, string>();
10 //for (int j = 0; j < b1.Length; j++)
11 //{
12 // if(b1[0]
13 //}
14
15 while (entries.MoveNext())
16 {
17 DocumentNode entry = entries.Current as DocumentNode;
18 DocumentInputStream dr = poifs.CreateDocumentInputStream(entry.Name);
19
20 if (entry.Name.ToLower() == "catalog")
21 continue;
22
23 byte[] buffer = new byte[dr.Length];
24 dr.Read(buffer);
25 int startpos = 0;
26
27 //detect jfif header
28 for (int i = 3; i < buffer.Length; i++)
29 {
30 if (buffer[i - 3] == 0xFF
31 && buffer[i - 2] == 0xD8
32 && buffer[i - 1] == 0xFF
33 && buffer[i] == 0xE0)
34 {
35 startpos = i - 3;
36 break;
37 }
38 }
39 if (startpos == 0)
40 continue;
41
42 FileStream jpeg = File.Create(entry.Name + ".jpeg");
43 jpeg.Write(buffer, startpos, buffer.Length - startpos);
44 jpeg.Close();
45 }
46
47 stream.Close();
48 }
测试代码
View Code
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;


浙公网安备 33010602011771号