在 Linux 中使用 C++ 跨卷移动文件
moving a file across volumes with C++ in Linux
我正在尝试编写一些在所有平台上跨卷移动文件的东西。目前,我使用重命名(...)函数来移动文件,这甚至可以跨Windows上的卷/驱动器。但是,在 Linux 上,我收到 EXDEV 错误(通过 strace),终止了我的应用程序:(
看来我可能需要通过系统(...)调用"mv",但这似乎很笨拙。那个,或者将 boost 集成到我的应用程序中,这不是一个微不足道的操作。
还有其他选择吗?
谢谢你的时间。
如果你想
写一些需要跨平台的东西,而不是依赖于特定于系统的实现 - 你必须坚持标准。虽然较新的 C++11 标准可能允许其他功能来帮助您解决这个问题,但一个微不足道的解决方案是只实现从一个fstream
到另一个的普通副本。
相关文章:
- 复制文件成功,移动文件失败,参数相同 - C++
- 错误:移动文件时'QString'为非标量类型"std::__cxx11::字符串"
- 快速从文件中读取下一个字符串,而无需移动文件的位置
- 如何使用C++在 Linux 中移动文件
- QT-如何移动文件
- 在巴泽尔移动文件
- C++:无法移动文件,因为文件夹名称上有空格
- 在C++中查找和移动文件
- 同时在Visual Studio和AnkhSVN中移动文件
- 使用SetFileInformationByHandle移动文件
- 在 matlab 中移动文件
- 在 Linux 中使用 C++ 跨卷移动文件
- 移动文件A()不喜欢我的参数
- C++ Windows 7上的移动文件错误(2)
- 为什么std::istream::read不根据读取的字节移动文件指针
- 是否可以使用FindFirstFile()来移动文件
- 读取文件:如何使用fscanf移动文件指针,以及scanf/fscanf如何处理丢失的%类型
- 移动文件() 不起作用
- 移动文件夹Windows c++:适用于Vista及以上版本,不包括XP
- 尝试使用带有C++的MoveFile移动文件时出现ERROR_INVALID_NAME