前一篇文章《分享制作精良的知识管理系统 博客备份程序 Site Rebuild》已经提到如何使用Site Rebuild来下载您所喜欢的博客文章,但是还不能实现把下载的文件导入进数据库中,无法实现在线浏览服务器中的文档数据。这一篇文章则帮助您建立文档数据库,现博客文章的的下载,存储和浏览。
打开Data Loader程序,执行Setting程序,打开的界面效果如下
点击ConnectionString后面的按钮,填写正确的数据库配置,如下所示
如下图所示,点击OK,返回主程序窗体。
打开SQL Server数据库管理程序,新创建一个名称为Document的数据库,运行下面的SQL 脚本以创建表结构
/****** 对象: Table [dbo].[CATEGORY] 脚本日期: 11/04/2011 10:27:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CATEGORY]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](200) NULL, CONSTRAINT [PK_CATEGORY] PRIMARY KEY CLUSTERED ( [RECNUM] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] /****** 对象: Table [dbo].[DOCUMENT] 脚本日期: 11/04/2011 16:46:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DOCUMENT]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [SUBJECT] [nvarchar](2000) NULL, [BODY_TYPE] [nvarchar](50) NULL, [BODY] [ntext] NULL, [CREATE_DATE] [datetime] NULL, [CATEGORY] [int] NULL, [CREATE_BY] [nvarchar](50) NULL, [COMPUTER] [nvarchar](200) NULL, [PATH] [nvarchar](2000) NULL, CONSTRAINT [PK_DOCUMENT] PRIMARY KEY CLUSTERED ( [RECNUM] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] /****** Object: Table [dbo].[SETTINGS] Script Date: 11/07/2011 00:04:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[SETTINGS]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [DOWNLOADED_PATH] [nvarchar](800) NULL, [CONNECTION_STRING] [nvarchar](800) NULL, [FAILED_CLEANUP_FILE] [nvarchar](400) NULL, CONSTRAINT [PK_SETTINGS] PRIMARY KEY CLUSTERED ( [RECNUM] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
INSERT dbo.SETTINGS
( DOWNLOADED_PATH ,
CONNECTION_STRING ,
FAILED_CLEANUP_FILE
)
VALUES ( 'G:\Document', -- DOWNLOADED_PATH - nvarchar(800)
NULL , -- CONNECTION_STRING - nvarchar(800)
NULL -- FAILED_CLEANUP_FILE - nvarchar(400)
)
最后一句的脚本,是为了创建配置数据选项。再次打开Setting程序,会显示出这个表的内容。
这就是所需要做的所有动作,按照前一篇文章的介绍,你可以很容易的达到下面的效果
截图中的文章取自TerryLee的设计模式系列,成一个体系,放在一起阅读,很方便。
请到epn.codeplec.com(http://epn.codeplex.com/releases/view/68647)中下载最新的Data Loader程序,以体验离线阅读博客文章。所有的文章和数据文档都在您自己的电脑中,您可以对它进行编辑,加工,提炼,学习。
到目前为止,Data Loader还需要改善的地方
1 通常一篇文章中会带有一小段代码下载,自动下载文档的同时,也希望可以下载到它的附件。
2 增强搜索能力,创建新的Index Builder程序,以适应在海量的文档数据库中搜索您需要的文档。
3 文档的下载,导入,需要增加进度条(Progress Bar)以显示当前状态,这样界面会友好一些。
4 在分析,下载和导入各个模块中,增加多线程处理能力,以提高处理速度。
5 增加新的应用,比如PPT下载,以搜索好的PPT数据资料。Image Download是用于下载网站中的图片,比如,经常看到一些做的非常好的界面效果图,于是就想到这个批量方式来获取这些数据,以集中研究UI设计。
6 压缩与解压缩处理。相同内容的文章,RTF格式一般是DOC格式三到四倍的尺寸大小,导致RTF格式比较消耗硬盘空间。以我的本机为例,2723个DOC文档,一共是745MB,而RTF格式则达到5G,存到数据库中,数据库的尺寸增加达到8G左右。需要对文档作压缩处理,处理思路是使用我们熟悉的ICSharpCode.SharpZipLib.dll和zip格式。
希望对你有帮助,欢迎提出宝贵意见。