Flutter 如何移动文件

Dwi*_*man 9 image dart flutter

我将移动某些文件。如何将图像文件从目录移动到另一个目录,示例文件 img.jpg 从 /storage/emulated/0/Myfolder 到 /storage/emulated/0/Urfolder?

kin*_*ine 26

File.rename仅当源文件和目标路径位于同一文件系统上时才有效,否则您将收到FileSystemException( OS Error: Cross-device link, errno = 18 )。因此,仅当您确定源文件和目标路径位于同一文件系统上时,才应使用它来移动文件。

例如,尝试将文件夹/storage/emulated/0/Android/data/下的文件移动到文件夹/data/user/0/com.my.app/cache/下的新路径时将失败FileSystemException

这是一个用于安全移动文件的小实用函数:

Future<File> moveFile(File sourceFile, String newPath) async {
  try {
    // prefer using rename as it is probably faster
    return await sourceFile.rename(newPath);
  } on FileSystemException catch (e) {
    // if rename fails, copy the source file and then delete it
    final newFile = await sourceFile.copy(newPath);
    await sourceFile.delete();
    return newFile;
  }
}
Run Code Online (Sandbox Code Playgroud)


Gün*_*uer 8

await File('/storage/emulated/0/Myfolder').rename('/storage/emulated/0/Urfolder')
Run Code Online (Sandbox Code Playgroud)

如果文件在不同的文件系统上,您需要创建一个新的目标文件,读取源文件并将内容写入目标文件,然后删除源文件。