Rename a file/Image in flutter

跟風遠走 提交于 2020-12-11 10:01:15

问题


I am picking a image from gallery/taking a photo using image_picker: ^0.6.2+3 package.

File picture = await ImagePicker.pickImage(
  maxWidth: 800,
  imageQuality: 10,
  source: source, // source can be either ImageSource.camera or ImageSource.gallery
  maxHeight: 800,
);

and I get picture.path as

/Users/[some path]/tmp/image_picker_A0EBD0C1-EF3B-417F-9F8A-5DFBA889118C-18492-00001AD95CF914D3.jpg

Now I want to rename the image to case01wd03id01.jpg

Note : I don't want to move it to new folder

How can I rename it? I could not find it in official docs.


回答1:


First import the path package.

import 'package:path/path.dart' as path;

Then create a new target path to rename the file.

File picture = await ImagePicker.pickImage(
        maxWidth: 800,
        imageQuality: 10,
        source: ImageSource.camera,
        maxHeight: 800,
);
print('Original path: ${picture.path}');
String dir = path.dirname(picture.path);
String newPath = path.join(dir, 'case01wd03id01.jpg');
print('NewPath: ${newPath}');
picture.renameSync(newPath);



回答2:


Manish Raj's answer isn't working for me since image_picker: ^0.6.7, they recently changed their API when getting an image or video which returns PickedFile instead of File.

The new method I used was to convert from PickedFile to File then copy it over to applications directory with a new name. This method requires path_provider.dart:

import 'package:path_provider/path_provider.dart';

...
...

PickedFile pickedFile = await _picker.getImage(source: ImageSource.camera);

// Save and Rename file to App directory
String dir = (await getApplicationDocumentsDirectory()).path;
String newPath = path.join(dir, 'case01wd03id01.jpg');
File f = await File(pickedF.path).copy(newPath);

I know the question states that they do not want to move it to a new folder but this was the best way I could find to make the rename work.



来源:https://stackoverflow.com/questions/59896345/rename-a-file-image-in-flutter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!