Tôi đang cố chuyển tệp từ vị trí này sang vị trí khác bằng cách sử dụng boost::filesystem
. Tôi đã sử dụng chức năng boost::filesystem::rename
nhưng khi tôi cố gắng làm điều đó, tôi có lỗi sau.Lỗi liên kết thiết bị chéo không hợp lệ với hệ thống tập tin tăng cường
terminate called after throwing an instance of
'boost::filesystem::filesystem_error'
what(): boost::filesystem::rename: Invalid cross-device link:
"./file_A.csv", "/opt/data/file_B.csv"
Aborted (core dumped)
Tôi hiểu rằng vấn đề là tôi đang cố di chuyển tệp từ một thư mục này sang thư mục khác được gắn trên ổ đĩa khác.
Có bất kỳ giải pháp khác nhau từ
- sao chép các tập tin và sau đó xóa nó (nó mang lại cho tôi một số cảm giác an toàn).
- gói
mv
trong cuộc gọi đếnstd::systen
?
Có funciton khác trong boost::filesystem
cho những gì tôi muốn đạt được? Tôi không thể tìm thấy nó.
Tôi đang làm việc với g + + và linux.
Lựa chọn 1 là những gì '/ bin/mv' làm khi một nỗ lực ban đầu tại 'đổi tên()' thất bại ... – twalberg
Thanks a lot. Nếu bạn dán câu trả lời của bạn vào một câu trả lời, tôi sẽ gắn cờ nó là câu trả lời chính xác. –
này cũng xảy ra đối với Python 'os.rename() '. –