c++ - Boost API 检查目录路径是否在 C++ 中的网络上

标签 c++ boost

我正在使用 C++ 中的应用程序编写一些文件,当我使用 std::io 操作将它们保存在网络驱动器上时,应用程序会卡住,直到文件完全写入,并且该过程需要时间,而在本地驱动器上则执行操作非常快。

有什么方法可以识别目录路径是否位于网络驱动器(映射/非映射)上?这样我就可以向用户发出警告,然后中断操作以先将其保存在本地,然后在后台将文件移动到网络。

PS:比较“\\”不是一个选项,因为驱动器可能已映射。

最佳答案

很抱歉可能会出现偏离主题的争论,但看来您走错了路。无论存储的本地/远程性质如何,任何文件操作都可能很慢。

  • 碎片会使任何磁盘操作变慢(无论读/写)
  • NTFS 卷可以分为多个物理驱动器(其中一些可能比另一个慢)
  • 如果任何硬盘尝试读取损坏区域(坏 block 等),则可能会出现任意长时间超时
  • 如果文件很大,即使是好的驱动器也会花费大量时间(造成不方便的用户体验)

因此,将磁盘 IO 移至另一个线程以向最终用户提供不卡住的 UI 会更加高效。

关于c++ - Boost API 检查目录路径是否在 C++ 中的网络上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920394/

相关文章:

c++ - 如何在没有提升的情况下标记字符串?

java - 获取网站的端口号

c++ - Boost.Log 'max_files' 配置未应用

c++ - Boost.beast http::read() 返回 `bad version`

c++ - 使用 boost::lexical_cast<double>(string)

c++ - 侵入式_ptr : Why isn't a common base class provided?

c++ - 是否可以在使用 D3DXCreateTextureFromFileInMemoryEx 创建的一个位置中的两个纹理之间逐步进行 alpha 混合?

c++ - visual studio 2013 (MFC) 中的自定义 CFileDialog

c++ - 删除正则表达式匹配

c++ - 安全地附加 boost 文件系统路径,检测向上引用