cómo crear un directorio en flutter
Quiero descargar imágenes y guardarlas en un nombre de directorio único usando dio y path_provider.pero tengo un error:
I/flutter (15977): FileSystemException: Cannot open file,
path = '/data/user/0/com.manga.indonesia.manga.suka/app_flutter/sensei-wa-koi-o-oshie-rarenai-chapter-7-bahasa-indonesia/0.jpg'
¿ Cómo puedo hacer este sensei-wa-koi-o-oshie-rarenai-chapter-7-bahasa-indonesia
directorio?
Mi código :
downloadChapter(chapter) async {
Response res;
Dio dio = new Dio();
var dir = await getApplicationDocumentsDirectory();
try {
res = await dio
.get('http://0.0.0.0:8080/api/MangaSuka/kchapters/' + chapter);
var contentChapter = res.data['content'].where((a) {
return a != null;
}).toList();
for (var i = 0; i < contentChapter.length; i++) {
await dio.download(contentChapter[i], "${dir.path}/${chapter}/$i.jpg",
onProgress: (rec, total) {
print("Rec: $rec , Total: $total");
});
};
return print(contentChapter);
} catch (e) {
return print(e);
}
}
Aceptado
Está bien explicado en la documentación de Flutter :
import 'dart:io';
void main() {
new Directory('sensei-wa-koi-o-oshie-rarenai-chapter-7-bahasa-indonesia').create()
// The created directory is returned as a Future.
.then((Directory directory) {
print(directory.path);
});
}
Sin embargo, en muchas situaciones, como la creación de un directorio, quizás la versión asíncrona (predeterminada) de Directory.create no ahorre tiempo y quizás pueda generar una condición de carrera. En ese caso, sería más apropiado usar la versión sincronizada del comando:
new Directory('sensei-wa-koi-o-oshie-rarenai-chapter-7-bahasa-indonesia').createSync()
// ... following sequential code
Es de destacar que muchos métodos dart::io tienen versiones *Sync.
Crea varios directorios usandorecursive: true
import 'dart:io';
...
var directory = await Directory('dir/subdir').create(recursive: true);
Consulta la información oficial .