C ++ Builder - 处理操作系统以迭代所有驱动器

时间:2013-03-20 14:19:57

标签: windows backup c++builder usb-drive

我正在将Borland C ++ Builder用于连接数据库的项目。

有一种配置可以备份到USB驱动器。当前方法的问题在于驱动器由最终用户手动配置,并且有时会使事情搞乱。例如。人们将USB驱动器移动到另一个端口,获得不同的字母,然后备份过程不再起作用。作为旁注,我们还有其他“更好”的流程来备份到云端等,但是有些地方没有互联网接入,也没有在RAID上运行......所以备份到USB就可以了从高清崩溃中拯救恩典。

我希望做一些编码来帮助解决这个问题。我希望能够掌握操作系统(Windows 8/7 / XP),并能够识别机器上的驱动器。一旦我有了这些,我就可以遍历它们并检查路径位置(例如文件标记,所以如果文件存在,我知道它是我们提供的USB)。然后,一旦我有了,我可以做备份。

作为更糟糕的情况,我将能够遍历所有26个字母来测试每个驱动器。然而,我正在使用它作为一个学习机会,并希望得到操作系统的句柄,以减少我可能遇到的检查/失败次数。此外,我很好奇是否有人有更好的方法:)

1 个答案:

答案 0 :(得分:2)

我认为通过尝试做一些比迭代超过26个驱动器号更先进的事情,我不会有太多的收获。

在尝试检查标记路径是否存在之前,您可以添加对GetDriveType的调用,并将返回值与DRIVE_REMOVABLE进行比较。这将确保您的代码不会启动CD / DVD驱动器,或者在映射共享的情况下命中网络。