我正在尝试在 USB 记忆棒上复制一些文件夹和文件,并且在一切完成后立即移除 USB 记忆棒。实现是这样的:
- 使用在 U 盘上创建相应的文件夹结构
mkdir
fsync
在创建文件夹后的每个目录描述符上- 复制文件内容(使用 C++ 流)
fsync
复制每个文件后的每个文件描述符
复制最后一个文件后,我立即移除了 USB 记忆棒(约 500 毫秒 - 1 秒)。但有时会丢失整个文件夹结构。为了避免这种情况,我fsync
在复制最后一个文件后再次在每个目录描述符上使用。这次所有文件和文件夹都存在于 U 盘上,但有时我的文件夹结构中有垃圾或 U 盘损坏。U 盘文件系统是 vfat。关于如何正确保存数据的任何想法?