视频监控---存储磁盘选择
2013-07-16 00:48
459 查看
通常监控客户端会安装在系统盘上,但是如果将本地录像视频也保存在系统盘上,将可能很快占用光系统盘资源而导致系统无法正常运行。安装时可以考虑枚举各个磁盘,判断剩余空间大小,将剩余空间最大的盘作为录像存储磁盘。
1. 利用GetLogicalDriveStrings列出所有盘符,如: c:\ d:\ 各个盘符之间会用null隔开。
TCHAR szDiskArray[1024 + 1] = {0};
DWORD dwRet = GetLogicalDriveStrings(1024, szDiskArray);
2. 用GetDriveType获取各个盘符的属性,是否硬盘分区,是否光驱,是否内存盘
只有属性为DRIVE_FIXED的才是本地磁盘分区,只是用它做比较。
3. 使用变量保存数据存储所在盘符 szStoreDisk(初始化为空串),以及剩余空间大小dwFreeStoreSize(初始化为0)
4. 使用GetDiskFreeSpaceEx()获取磁盘的剩余空间,依次用DRIVE_FIXED类型的盘符上的剩余空间和dwFreeStoreSize做比较,如果比dwFreeStoreSize大,则将当前比较盘符上的剩余空间赋值给dwFreeStoreSize,同时保存该盘符。
1. 利用GetLogicalDriveStrings列出所有盘符,如: c:\ d:\ 各个盘符之间会用null隔开。
TCHAR szDiskArray[1024 + 1] = {0};
DWORD dwRet = GetLogicalDriveStrings(1024, szDiskArray);
#define DRIVE_UNKNOWN 0
#define DRIVE_NO_ROOT_DIR 1
#define DRIVE_REMOVABLE 2
#define DRIVE_FIXED 3
#define DRIVE_REMOTE 4
#define DRIVE_CDROM 5
#define DRIVE_RAMDISK 6
#define DRIVE_NO_ROOT_DIR 1
#define DRIVE_REMOVABLE 2
#define DRIVE_FIXED 3
#define DRIVE_REMOTE 4
#define DRIVE_CDROM 5
#define DRIVE_RAMDISK 6
只有属性为DRIVE_FIXED的才是本地磁盘分区,只是用它做比较。
UINT type = GetDriveType((*iter).c_str());
switch(type) {
case DRIVE_FIXED: {
…
}
break;
default:
}
switch(type) {
case DRIVE_FIXED: {
…
}
break;
default:
}
3. 使用变量保存数据存储所在盘符 szStoreDisk(初始化为空串),以及剩余空间大小dwFreeStoreSize(初始化为0)
4. 使用GetDiskFreeSpaceEx()获取磁盘的剩余空间,依次用DRIVE_FIXED类型的盘符上的剩余空间和dwFreeStoreSize做比较,如果比dwFreeStoreSize大,则将当前比较盘符上的剩余空间赋值给dwFreeStoreSize,同时保存该盘符。
INT64 i64FreeBytesToCaller;
INT64 i64TotalBytes;
INT64 i64FreeBytes;
BOOL bRet = GetDiskFreeSpaceEx((*iter).c_str(),
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
INT64 i64TotalBytes;
INT64 i64FreeBytes;
BOOL bRet = GetDiskFreeSpaceEx((*iter).c_str(),
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
相关文章推荐
- 存储专访:整合磁带与磁盘 昆腾为用户提供更灵活的选择
- mysql存储引擎选择的总结
- IBM存储扩展柜磁盘在线扩容(一)
- raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍
- 贪心算法解磁盘文件最优存储问题——算法解题报告
- 获取磁盘存储目录
- 为什么要选择补码来存储计算机中的数据
- 【转载】InnoDB还是MyISAM 再谈MySQL存储引擎的选择
- 数据库学习笔记:第九章 存储数据:磁盘和文件
- RHCE学习<11>RHEL6打印服务、ISCSI存储、磁盘加密LUKS和grub引导
- 阿里云NAS文件存储:性能型、容量型、NAS Plus选择
- 存储 磁盘大于2TB 大数据存储一个盘 解决方法
- Mac装双系统选择不了磁盘
- MySQL如何选择合适的存储引擎
- strncasecmp函数--比较字符串,忽略大小写差异+sscanf格式选择存储字符串+atoi函数
- Linux 存储结构与磁盘划分
- 存储直接删除磁盘,导致Linux 因找不到udev的磁盘进不了系统
- VMWARE 存储方式的选择:Thin or Thick?
- 7 表类型(存储引擎)的选择
- MySQL数据库性能优化之存储引擎选择