前一篇文章《分享制作精良的知识管理系统 博客备份程序 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
GOSET QUOTED_IDENTIFIER ON
GOCREATE 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格式。
希望对你有帮助,欢迎提出宝贵意见。