nodejs--檔案複製拷貝--資料夾遍歷--資料處理
阿新 • • 發佈:2021-01-20
技術標籤:nodejsnodejs檔案複製拷貝資料夾遍歷資料處理
如果採用nodejs處理業務邏輯,必須處理檔案資料,而檔案資料與資料夾,檔案本身相關。相關函式nodejs提供了內建模組。本文將這一方面常用的功能,根據網際網路上提供的資料進行整理。
1.檔案拷貝
1.1小檔案拷貝
以上程式使用fs.readFileSync從源路徑讀取檔案內容,並使用fs.writeFileSync將檔案內容寫入目標路徑。
var fs = require('fs');
function copy(src, dst) {
fs.writeFileSync(dst, fs.readFileSync (src));
}
function main(argv) {
copy(argv[0], argv[1]);
}
main(process.argv.slice(2));
1.2大檔案拷貝
使用fs.createReadStream建立了一個原始檔的只讀資料流,並使用fs.createWriteStream建立了一個目標檔案的只寫資料流,並且用pipe方法把兩個資料流連線了起來。連線起來後發生的事情,說得抽象點的話,水順著水管從一個桶流到了另一個桶。
var fs = require('fs');
function copy(src, dst) {
fs.createReadStream (src).pipe(fs.createWriteStream(dst));
}
function main(argv) {
copy(argv[0], argv[1]);
}
main(process.argv.slice(2));
2.資料夾遍歷
有時需要獲取資料夾的內容,來進行某種處理。
2.1同步遍歷
function travel(dir, callback) {
fs.readdirSync(dir).forEach(function (file) {
var pathname = path.join(dir, file);
if (fs.statSync(pathname).isDirectory()) {
travel(pathname, callback);
} else {
callback(pathname);
}
});
}
2.2非同步遍歷
function travel(dir, callback, finish) {
fs.readdir(dir, function (err, files) {
(function next(i) {
if (i < files.length) {
var pathname = path.join(dir, files[i]);
fs.stat(pathname, function (err, stats) {
if (stats.isDirectory()) {
travel(pathname, callback, function () {
next(i + 1);
});
} else {
callback(pathname, function () {
next(i + 1);
});
}
});
} else {
finish && finish();
}
}(0));
});
}
合理的指令碼程式碼可以有效的提高工作效率,減少重複勞動。
歡迎光臨知了軟體開發網路平臺,本公司定製開發各類軟體,主要方向為桌面專業軟體開發和外掛定製開發,桌面軟體主要包括文字圖形識別類軟體,資訊管理類軟體,3D列印類軟體,視訊類軟體以及其它涉及專業的各類圖形影象處理軟體。外掛包含AE外掛,AI外掛,PS外掛,PDF外掛,3DMAX外掛以及Word,Excel等Office外掛開發。詳情請諮詢,微信QQ:312117271,手機:18928899728,郵箱: [email protected]
公司網址:http://www.zhiliaos.com