1.输出当前目录下的所有文件的文件名
#Synchronous #
var fs = require('fs'),
filenames,
i,
processId;
filenames = fs.readdirSync(".");
for (i = 0; i < filenames.length; i++) {
console.log(filenames[i]);
}
console.log("Ready.");
processId = process.getuid();
#Asynchronous#
var fs = require('fs'),
processId;
fs.readdir(".", function (err, filenames) {
var i;
for (i = 0; i < filenames.length; i++) {
console.log(filenames[i]);
}
console.log("Ready.");
});
processId = process.getuid();
#-------------------------华丽分割线-------------------------#
2.授权,重命名
#Synchronous #
var fs = require('fs'),
oldFilename,
newFilename,
isSymLink;
oldFilename = "./processId.txt";
newFilename = "./processIdOld.txt";
fs.chmodSync(oldFilename, 777);
fs.renameSync(oldFilename, newFilename);
isSymLink = fs.lstatSync(newFilename).isSymbolicLink();
#Asynchronous#
var fs = require('fs'),
oldFilename,
newFilename;
oldFilename = "./processId.txt";
newFilename = "./processIdOld.txt";
fs.chmod(oldFilename, 777, function (err) {
fs.rename(oldFilename, newFilename, function (err) {
fs.lstat(newFilename, function (err, stats) {
var isSymLink = stats.isSymbolicLink();
});
});
});
#-------------------------华丽分割线-------------------------#
3.获得当前目录下所有文件的大小
#Synchronous #
var fs = require('fs');
function calculateByteSize() {
var totalBytes = 0,
i,
filenames,
stats;
filenames = fs.readdirSync(".");
for (i = 0; i < filenames.length; i ++) {
stats = fs.statSync("./" + filenames[i]);
totalBytes += stats.size;
}
console.log(totalBytes);
}
calculateByteSize();
#Asynchronous#
var fs = require('fs');
var count = 0,
totalBytes = 0;
function calculateByteSize() {
fs.readdir(".", function (err, filenames) {
var i;
count = filenames.length;
for (i = 0; i < filenames.length; i++) {
fs.stat("./" + filenames[i], function (err, stats) {
totalBytes += stats.size;
count--;
if (count === 0) {
console.log(totalBytes);
}
});
}
});
}
#Asynchronous#
calculateByteSize();
#-------------------------华丽分割线-------------------------#
4.计算文件数
#Synchronous #
var fs = require('fs');
var path1 = "./",
path2 = ".././";
function countFiles(path) {
var filenames = fs.readdirSync(path);
return filenames.length;
}
console.log(countFiles(path1) + " files in " + path1);
console.log(countFiles(path2) + " files in " + path2);
#Asynchronous#
var fs = require('fs');
var path1 = "./",
path2 = ".././",
logCount;
function countFiles(path, callback) {
fs.readdir(path, function (err, filenames) {
callback(err, path, filenames.length);
});
}
logCount = function (err, path, count) {
console.log(count + " files in " + path);
};
countFiles(path1, logCount);
countFiles(path2, logCount);
分享到:
相关推荐
NodeJS实战:深入理解与应用 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其事件驱动、非阻塞I/O模型而闻名,尤其适合用于构建高效、可伸缩的网络应用程序。本实战指南旨在帮助开发者从零基础开始,...
#### 四、Node.js异步编程模式 - **回调函数**:最原始的异步编程方式。 - 示例:`fs.readFile('data.txt', 'utf8', function(err, data) { /* ... */ });` - **Promise**:一种更优雅地处理异步操作的方式,解决...
在“VUE + nodejs实战”项目中,我们将探讨如何结合Vue.js前端框架与Node.js后端技术构建一个完整的Web应用程序。Vue.js是一款轻量级的JavaScript库,它以其组件化、易用性和高效的虚拟DOM著称,而Node.js则是一个...
- **async/await**:ES2017引入了async/await语法糖,进一步简化了异步代码的编写。 #### 5. 事件循环机制 - **事件循环**:Node.js的事件循环机制负责管理所有的异步操作,它通过监听事件队列并调用相应的回调函数...
在现代Web开发中,Node.js以其异步非阻塞I/O和高效的性能,已经成为构建实时应用的理想选择。MongoDB作为一个强大的NoSQL数据库,以其灵活的数据模型和高性能,常被用于处理大量非结构化数据。本实践教程将深入探讨...
通过学习这些源代码,读者可以更好地理解Node.js的编程模式和最佳实践,同时提升自己的编程能力。 总结来说,"Nodejs入门经典"是一份针对Node.js初学者的宝贵资源,它涵盖了Node.js的基本概念、核心模块以及实际...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写代码,提供了丰富的模块系统和非阻塞I/O模型,非常适合构建高性能的网络应用。 request库是Node.js中常用的HTTP...
《Node.js应用程序模式:Pluralsight实战指南》 在深入了解Node.js应用程序模式之前,我们首先需要理解Node.js的核心特性。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O和事件驱动的模型...
- **工厂模式**:使用工厂模式封装对象创建过程,使代码更加灵活和可扩展。 - **装饰者模式**:通过装饰者模式动态地给对象添加新的功能,而不改变其结构。 - **观察者模式**:实现观察者模式来定义对象之间的一对多...
3. **-《NodeJS开发指南》.zip**:这可能是一个嵌套的压缩包,里面可能包含了详细的Node.js开发指南,包括基础概念、核心API、模块机制、异步编程模式、性能优化等方面的知识,对于深入理解Node.js非常有帮助。...
本学习笔记和经验总结将深入探讨Node.js的核心概念、主要特性、常用模块以及实战技巧,帮助你从零基础到熟练掌握Node.js。 一、Node.js核心概念 1. 非阻塞I/O模型:Node.js采用事件驱动、非阻塞I/O模型,提高了...
- **async/await**:基于Promises之上的一种更简洁的异步编程语法糖,使异步代码看起来更像同步代码。 #### 7. 流(Streams) - **流的概念**:在Node.js中,流是一种数据处理模型,可以用来处理大量数据而不会耗尽...
在"nodejs-in-action-master"这个压缩包中,包含了《Node.js实战》书中各个示例的源代码。通过实际操作这些例子,你可以深入理解书中讲解的概念,并且提升解决实际问题的能力。这些例子覆盖了从基础的HTTP服务器创建...
标题中的“博客后台系统,nodejs express mongodb主要就是数据的增删查改”指的是一个基于Node.js、Express框架和MongoDB数据库构建的博客管理后台。这个项目主要用于实践和学习,帮助开发者掌握基本的Web开发技能。...
NodeJS的诞生主要归功于其作者Ryan Dahl,他旨在创建一个高性能的Web服务器平台,利用了事件驱动和异步I/O的优势。由于JavaScript没有内置的IO功能,且对事件处理有良好的支持,同时拥有广泛的开发者基础,因此被选...