# 1. 文件管理
## 1.1. 概述
IPC产品的文件管理模块。抓拍的图片或者视频的保存/删除/查询等操作通过该模块实现。
## 1.2. 数据库管理设计
考虑到拓展性,使用数据库salite3对文件的各种属性进行管理。
### 1.2.1. 数据库表
**文件保存表**
| key | 路径 | 时间 | 类型 | 大小 | 状态 |
| ---- | ---- | ---- | ---- | ---- | ---- |
| 数据库键值 | 文件保存的相对路径 | 录制的时间
可能不准确 | 录制的类型:
PIR
手动
手机app
定时 | 文件大小 | 枚举:
正在拍摄
已完成拍摄
待上传
正在上传
上传完成 |
**如何应对未知的数据表临加**
解决基于一个已存在的数据库文件,临加数据元素。
拍摄流程:
1. 拍摄前先创建数据,获取唯一自增键值;
2. 拍摄结束后,更新数据状态为已完成;
**状态使用TEXT数据类型,如果使用枚举,可能会存在枚举值变化导致的bug。**
## 1.3. 文件夹管理
**目录树**
```
DCIM/ // 根目录
├── picture // 图片目录
│ └── 2024 // 年份记录
│ ├── 01 // 月份记录
│ │ └── xxx.jpg
│ └── 02
└── video // 视频目录
└── 2024 // 年份记录
└── 01 // 月份记录
└── xxx.MP4
```
**野数据**
插入一些非软件保存文件的sd卡时,忽略这些数据(不做任何处理)。
## 1.4. 文件命名规则
**文件类型**
1. PIR抓拍;
2. 定时抓拍;
3. 手动抓拍;
**文件名命名规则**
基于文件保存表的数据元素:类型+时间+key