nodejsの学習する(ファイルリスト表示)
electronとかいうのがありまして…
jsを使ってやるらしいけどファイル制御とかはnodejsの部分を使用するということになる
うん、javascriptはjquery以外には勉強しかしていない
このままだとコピペエンジニアになってしまう…(´・_・`)
目的がちょっと弱いけど少し書いてみる
参考
[node.js]ディレクトリを再帰的にたどってファイル一覧をJSONとして出力する | #GUNMAGISGEEK
JavaScript - ディレクトリを再帰的にたどってファイル一覧を出力する - Qiita
ファイルの一覧を出す
$ tree . ├── app.js ├── app2.js └── files ├── aaa │ ├── xxx │ ├── xxx.txt │ └── yyy.txt ├── aaa.txt └── bbb.txt 3 directories, 6 files $
こんな感じのファイルがあるのでfilesの中を抽出する
app.js
// fs var fs = require('fs'); // 検索するディレクトリ var _dir = __dirname + '/files'; // 指定ディレクトリを検索して一覧を表示 fs.readdir(_dir, function(err, files){ // filesの中身を繰り替えして出力 files.forEach(function(file){ var _type = ""; if(fs.statSync(_dir + "/" + file).isFile()){ _type = "file :"; }else{ _type = "directory:"; } console.log(_type + _dir + "/" + file); }); });
結果
$ node app.js directory:/Volumes/Transcend/samples/nodejs_sample1/files/aaa file :/Volumes/Transcend/samples/nodejs_sample1/files/aaa.txt file :/Volumes/Transcend/samples/nodejs_sample1/files/bbb.txt $
もう少し深く見てみる
app2.js
// fs var fs = require('fs'); var path = require('path'); // 検索するディレクトリ var _dir = __dirname + '/files'; var walk = function(path, fileCallback, errCallback){ // 指定ディレクトリを検索して一覧を表示 fs.readdir(path, function(err, files){ if(err){ errCallback(err); return; } // filesの中身を繰り替えして出力 files.forEach(function(file){ var _f = path + "/" + file; if(fs.statSync(_f).isDirectory()){ fileCallback(_f); walk(_f, fileCallback); }else{ fileCallback(_f); } }); }); } walk(_dir, function(path){ console.log(path); }, function(err) { console.log("err"); });
↓
$ node app2.js /Volumes/Transcend/samples/nodejs_sample1/files/aaa /Volumes/Transcend/samples/nodejs_sample1/files/aaa.txt /Volumes/Transcend/samples/nodejs_sample1/files/bbb.txt /Volumes/Transcend/samples/nodejs_sample1/files/aaa/xxx /Volumes/Transcend/samples/nodejs_sample1/files/aaa/xxx.txt /Volumes/Transcend/samples/nodejs_sample1/files/aaa/yyy.txt $
とりあえずこんな感じ