我正在使用 C++ 中的应用程序编写一些文件,当我使用 std::io 操作将它们保存在网络驱动器上时,应用程序会卡住,直到文件完全写入,并且该过程需要时间,而在本地驱动器上则执行操作非常快。
有什么方法可以识别目录路径是否位于网络驱动器(映射/非映射)上?这样我就可以向用户发出警告,然后中断操作以先将其保存在本地,然后在后台将文件移动到网络。
PS:比较“\\”不是一个选项,因为驱动器可能已映射。
最佳答案
很抱歉可能会出现偏离主题的争论,但看来您走错了路。无论存储的本地/远程性质如何,任何文件操作都可能很慢。
- 碎片会使任何磁盘操作变慢(无论读/写)
- NTFS 卷可以分为多个物理驱动器(其中一些可能比另一个慢)
- 如果任何硬盘尝试读取损坏区域(坏 block 等),则可能会出现任意长时间超时
- 如果文件很大,即使是好的驱动器也会花费大量时间(造成不方便的用户体验)
因此,将磁盘 IO 移至另一个线程以向最终用户提供不卡住的 UI 会更加高效。
关于c++ - Boost API 检查目录路径是否在 C++ 中的网络上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920394/