发布网友 发布时间:2022-05-01 23:48
共3个回答
懂视网 时间:2022-05-02 04:09
之前写一些小工具的时候,需要用到数据存储方面的技术,但是用数据库又觉得太大了,本地文件存储txt文件存储又不是很规范,于是乎想到了去编写一个简单的基于本地文件系统的数据存储库,暂且叫它localdb吧,总之也是为了方便使用,特别是数据量不大,但是又特别想要本地数据存储的。(抛开access不说)
一、工具
工欲善其事必先利其器,存储数据必然要有一个标准的数据格式,首先让我想到的就是json,xml,原因不必多说。所以下面编写的数据主要以json作为存储格式。json操作用Newtonjson,操作方便简单。
二、文件系统的操作(LocalFileDB)
本地数据库,必不可少对本地文件进行操作,所以对本地文件的读取创建统一管理,话不多说,直接上代码。
首先添加自定义的异常:
/// <summary> /// 文件数据库异常 /// </summary> public class FileDatabaseException : Exception { public FileDatabaseException(string message) : base(message) { } public FileDatabaseException(string message, Exception innerException) : base(message, innerException) { } }View Code
然后是具体操作文件的代码(这块有参考别人的,仅供学习使用,如有侵权,请联系我):
/// <summary> /// 文件数据库,这是一个抽象类。(之前做的拿来用的,也可以应用于xml,但已有linq to xml,所以这边暂时仅用于json) /// </summary> public abstract class FileDatabase<TEntity> { #region Fields /// <summary> /// 文件数据库操作锁 /// </summary> protected static readonly object operationLock = new object(); private static HashSet<char> invalidFileNameChars; static FileDatabase() { invalidFileNameChars = new HashSet<char>() { ‘