2015-09-10 16 views
26

Próbuję przechodzić i pobierać pliki w katalogu, ale mam pewne problemy z jego implementacją. Jak pobrać wiele plików, a następnie przenieść je do innego folderu?Zapętlanie plików w folderze Node.JS

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()); 
}); 
+1

Być może powinieneś rzucić okiem na API systemu plików node.js. Tam * może * być funkcją do wypisywania plików w katalogu. Proszę, pokaż trochę wysiłku zanim zapytasz tutaj. 'stat'ing katalog ma niewiele wspólnego z twoim problemem. –

+4

Dzięki, ale tak wiem. Spojrzałem na API i miałem kłopot, dlatego jestem tutaj – Prolasis

Odpowiedz

42

Chcesz skorzystać z funkcji fs.readdir uzyskać zawartości katalogu, a funkcja fs.rename faktycznie zrobić zmianę nazwy. Obie te funkcje mają wersje synchroniczne, jeśli potrzebujesz , aby poczekać na ich zakończenie przed uruchomieniem kodu.

Napisałem szybki skrypt, który robi to, co opisałeś.

Testowany na moim lokalnym komputerze.

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'. 
+0

Dla kompletności przykładu następujące linie istnieją przed: var fs = require ('fs'); var path = require ('path'); Proces –

+0

jest obiektem globalnym. nie musisz tego wymagać. W przeciwnym razie miło i dzięki! – kjonsson

+0

Używał go w poprzednich wersjach. Wcześniej trzeba było odwoływać się do "global.process", a wymagany plik udostępnia go. Dziękuję za komentarz. –

Powiązane problemy