Esiste una funzione integrata per copiare una directory e copiare ricorsivamente tutti i file (e altre directory) in Dart?Esiste una funzione integrata per copiare una directory in Dart?
risposta
No, non a mia conoscenza non c'è. Ma Dart supporta la lettura di base e la scrittura di file da directory, quindi è ovvio che questo potrebbe essere risolto a livello di programmazione.
Check out this gist Ho trovato uno strumento che avrebbe portato a termine questo processo.
In sostanza, si dovrebbe cercare la directory per i file che si voleva copiare ed eseguire l'operazione di copia:
newFile.writeAsBytesSync(element.readAsBytesSync());
a tutti i percorsi di file, new Path(element.path);
, nel new Directory(newLocation);
.
Edit:
Ma questo è super inefficiente, perché i file intere deve essere letto in dal sistema e ha scritto di nuovo fuori in un file. Si potrebbe semplicemente use a shell process generato da DART a prendersi cura del processo per voi:
Process.run("cmd", ["/c", "copy", ...])
Grazie James, ha scritto una funzione rapida per questo, ma ha fatto un modo alternativo. Non sono sicuro se in questo modo sarebbe più efficiente o no?
/**
* Retrieve all files within a directory
*/
Future<List<File>> allDirectoryFiles(String directory)
{
List<File> frameworkFilePaths = [];
// Grab all paths in directory
return new Directory(directory).list(recursive: true, followLinks: false)
.listen((FileSystemEntity entity)
{
// For each path, if the path leads to a file, then add to array list
File file = new File(entity.path);
file.exists().then((exists)
{
if (exists)
{
frameworkFilePaths.add(file);
}
});
}).asFuture().then((_) { return frameworkFilePaths; });
}
Edit: O! Un approccio ancora migliore (in alcune situazioni) sarebbe quello di restituire un flusso di file nella directory:
/**
* Directory file stream
*
* Retrieve all files within a directory as a file stream.
*/
Stream<File> _directoryFileStream(Directory directory)
{
StreamController<File> controller;
StreamSubscription source;
controller = new StreamController<File>(
onListen:()
{
// Grab all paths in directory
source = directory.list(recursive: true, followLinks: false).listen((FileSystemEntity entity)
{
// For each path, if the path leads to a file, then add the file to the stream
File file = new File(entity.path);
file.exists().then((bool exists)
{
if (exists)
controller.add(file);
});
},
onError:() => controller.addError,
onDone:() => controller.close
);
},
onPause:() { if (source != null) source.pause(); },
onResume:() { if (source != null) source.resume(); },
onCancel:() { if (source != null) source.cancel(); }
);
return controller.stream;
}
- 1. Esiste una funzione integrata per le citazioni F # leggibili dall'uomo?
- 2. Esiste una funzione javascript integrata simile a os.path.join?
- 3. Copiare i file da una directory in una directory esistente
- 4. Comando Shell per copiare una directory in un'altra posizione
- 5. Esiste una porta socket.io su Dart?
- 6. go ha una funzione di "stampa" integrata?
- 7. Come posso creare un file in una struttura di directory che non esiste ancora in Dart?
- 8. Esiste una funzione Mathematica integrata per trovare gli operatori anziché i numeri nelle equazioni?
- 9. Verificare se esiste una directory in PHP
- 10. Creare una directory e copiare un file
- 11. Come posso verificare l'esistenza di una funzione in Dart?
- 12. Esiste una funzione min integrata per una porzione di argomenti int o un numero variabile di argomenti int in golang?
- 13. Esiste una funzione integrata come la giunzione di Perl in Python?
- 14. In Haskell, esiste una funzione integrata che crea un elenco di un elemento?
- 15. Puoi prendere un riferimento a una funzione integrata in Perl?
- 16. Esiste una funzione inclusa in Emacs per percorrere in modo ricorsivo la struttura della directory e chiamare una funzione?
- 17. Wix- Come copiare una directory per installare la cartella
- 18. Esiste una funzione mappa?
- 19. Esegui una funzione bash immettendo una directory
- 20. Come copiare una directory dalla macchina locale alla macchina remota
- 21. Esiste una funzione haskell per i preventivi?
- 22. Utilizzo di xcopy per copiare file da diverse directory in una directory
- 23. Esiste una funzione come isdate() per datetime2?
- 24. Hadoop copia una directory?
- 25. ridefinizione della funzione integrata
- 26. Come usare ivy per costruire una guerra senza copiare i jar in una directory lib
- 27. Come copiare una directory e il suo contenuto in una posizione esistente usando Python?
- 28. Esiste una funzione che richiede un anno, mese e giorno per creare una data in PostgreSQL?
- 29. Esiste una funzione di libreria in Python per trasformare una funzione generatore in una funzione che restituisce un elenco?
- 30. Esiste una funzione "elemento pronto" in jQuery?