write nodejs node array javascript arrays node.js loops fs

javascript - nodejs - Looping a través de archivos en una carpeta Node.JS



node.js push array (1)

Estoy tratando de recorrer y recoger archivos en un directorio, pero tengo algunos problemas para implementarlo. ¿Cómo extraer múltiples archivos y luego moverlos a otra carpeta?

var dirname = ''C:/FolderwithFiles''; console.log("Going to get file info!"); fs.stat(dirname, function (err, stats) { if (err) { return console.error(err); } console.log(stats); console.log("Got file info successfully!"); // Check file type console.log("isFile ? " + stats.isFile()); console.log("isDirectory ? " + stats.isDirectory()); });


Desea utilizar la función fs.readdir para obtener el contenido del directorio y la función fs.rename para hacer el cambio de nombre. Ambas funciones tienen versiones síncronas si necesita esperar a que terminen antes de ejecutar el código posteriormente.

Escribí un guión rápido que hace lo que describes.

var fs = require( ''fs'' ); var path = require( ''path'' ); // In newer Node.js versions where process is already global this isn''t necessary. var process = require( "process" ); var moveFrom = "/home/mike/dev/node/sonar/moveme"; var moveTo = "/home/mike/dev/node/sonar/tome" // Loop through all the files in the temp directory fs.readdir( moveFrom, function( err, files ) { if( err ) { console.error( "Could not list the directory.", err ); process.exit( 1 ); } files.forEach( function( file, index ) { // Make one pass and make the file complete var fromPath = path.join( moveFrom, file ); var toPath = path.join( moveTo, file ); fs.stat( fromPath, function( error, stat ) { if( error ) { console.error( "Error stating file.", error ); return; } if( stat.isFile() ) console.log( "''%s'' is a file.", fromPath ); else if( stat.isDirectory() ) console.log( "''%s'' is a directory.", fromPath ); fs.rename( fromPath, toPath, function( error ) { if( error ) { console.error( "File moving error.", error ); } else { console.log( "Moved file ''%s'' to ''%s''.", fromPath, toPath ); } } ); } ); } ); } );

Probado en mi máquina local.

node testme.js ''/home/mike/dev/node/sonar/moveme/hello'' is a file. ''/home/mike/dev/node/sonar/moveme/test'' is a directory. ''/home/mike/dev/node/sonar/moveme/test2'' is a directory. ''/home/mike/dev/node/sonar/moveme/test23'' is a directory. ''/home/mike/dev/node/sonar/moveme/test234'' is a directory. Moved file ''/home/mike/dev/node/sonar/moveme/hello'' to ''/home/mike/dev/node/sonar/tome/hello''. Moved file ''/home/mike/dev/node/sonar/moveme/test'' to ''/home/mike/dev/node/sonar/tome/test''. Moved file ''/home/mike/dev/node/sonar/moveme/test2'' to ''/home/mike/dev/node/sonar/tome/test2''. Moved file ''/home/mike/dev/node/sonar/moveme/test23'' to ''/home/mike/dev/node/sonar/tome/test23''. Moved file ''/home/mike/dev/node/sonar/moveme/test234'' to ''/home/mike/dev/node/sonar/tome/test234''.