Latest web development tutorials

système de fichiers Node.js

Node.js fournit un ensemble similaire de UNIX (POSIX) norme API des opérations de fichiers. Node Import File System Module syntaxe (fs) est la suivante:

var fs = require("fs")

Asynchronous et synchrone

Node.js système de fichiers (fs Module) méthodes de module ont des versions asynchrones et synchrones, comme la lecture du contenu de la fonction document a asynchrone fs.readFile () et la synchronisation fs.readFileSync ().

fonctions de méthode asynchrone dernier paramètre à la fonction de rappel, le premier argument de la fonction de rappel contient un message d'erreur (erreur).

Je recommande est d'utiliser la méthode asynchrone, par rapport à synchrone, méthode asynchrone pour une meilleure performance, plus rapide, et il n'y a pas d'obstruction.

Exemples

Créer un fichier input.txt, comme suit:

本教程官网地址:www.w3big.com
文件读取实例

Créer un fichier file.js, comme suit:

var fs = require("fs");

// 异步读取
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("异步读取: " + data.toString());
});

// 同步读取
var data = fs.readFileSync('input.txt');
console.log("同步读取: " + data.toString());

console.log("程序执行完毕。");

Le code ci-dessus est exécuté comme suit:

$ node file.js 
同步读取: 本教程官网地址:www.w3big.com
文件读取实例

程序执行完毕。
异步读取: 本教程官网地址:www.w3big.com
文件读取实例

Ensuite, laissez-nous comprendre les méthodes spécifiques dans le cadre du système de fichiers Node.js.


Ouvrez le fichier

grammaire

Ce qui suit est un fichier ouvert dans la syntaxe de mode asynchrone:

fs.open(path, flags[, mode], callback)

Paramètres

Paramètres comme suit:

  • path - chemin vers le fichier.

  • drapeaux - fichier comportement ouvert.Des valeurs spécifiques décrites ci-dessous.

  • Mode - définir le mode de fichier (permissions), créer un fichier des autorisations par défaut 0666 (lisible, inscriptible).

  • rappel - fonction de rappel prend deux paramètres, tels que: rappel (err, fd).

drapeaux paramètre peut être les valeurs suivantes:

drapeau description
r Ouvrez le fichier en mode lecture. Si le fichier n'existe pas lancer.
r + Ouvrez le fichier en mode lecture-écriture. Si le fichier n'existe pas lancer.
rs Lire le fichier de manière synchrone.
rs + D'une manière synchronisée pour lire et écrire des fichiers.
w Ouvrez le fichier en mode écriture, si n'existe pas, il est créé le fichier.
wx Semblable, mais si le chemin du fichier existe, l'échec fichier écriture 'w'.
w + Ouvrez le fichier en mode lecture-écriture, si n'existe pas, il est créé le fichier.
wx + Similaire 'w +', mais si le chemin du fichier existe, le fichier en lecture et écriture a échoué.
un Ouvrez le fichier en mode ajout, si n'existe pas, il est créé le fichier.
hache Semblable à 'a', mais si le chemin du fichier existe, le fichier append échoue.
a + Pour lire le fichier ouvert en mode ajout, si n'existe pas, il est créé le fichier.
ax + Similaire 'A +', mais si le chemin d'accès de fichier existe, le fichier est lu d'autres pannes.

Exemples

Ensuite, nous créons fichier file.js et ouvre le fichier input.txt lire et écrire le code comme suit:

var fs = require("fs");

// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("文件打开成功!");     
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备打开文件!
文件打开成功!

Obtenir des informations de fichier

grammaire

Les documents ci-dessous pour obtenir de l'information par le biais de la syntaxe mode asynchrone:

fs.stat(path, callback)

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • rappel - fonction de rappel prend deux paramètres, tels que:(err, statistiques), les statistiques sont fs.Stats objet.

Après fs.stat (chemin) l'exécution, une instance de la classe sera retourné à leur fonction stats de rappel. Vous pouvez déterminer les attributs pertinents du fichier par classe stats fournit une méthode. Par exemple, pour déterminer si les fichiers:

var fs = require('fs');

fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile()); 		//true
})

méthodes de classe stats sont:

manière description
stats.isFile () Si le fichier renvoie true, sinon il retourne faux.
stats.isDirectory () Si le répertoire renvoie true, sinon il retourne faux.
stats.isBlockDevice () Si le périphérique bloc renvoie true, sinon il retourne faux.
stats.isCharacterDevice () Si l'appareil est un personnage retourne vrai, sinon retourne false.
stats.isSymbolicLink () Si elle est un lien doux pour retourner vrai, sinon il retourne faux.
stats.isFIFO () Si le FIFO, renvoie true, sinon il retourne faux. FIFO est un type spécial de commande UNIX pipeline.
stats.isSocket () Si Socket retourne vrai, sinon il retourne faux.

Exemples

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("准备打开文件!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("读取文件信息成功!");
   
   // 检测文件类型
   console.log("是否为文件(isFile) ? " + stats.isFile());
   console.log("是否为目录(isDirectory) ? " + stats.isDirectory());    
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备打开文件!
{ dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 40333161,
  size: 61,
  blocks: 8,
  atime: Mon Sep 07 2015 17:43:55 GMT+0800 (CST),
  mtime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST),
  ctime: Mon Sep 07 2015 17:22:35 GMT+0800 (CST) }
读取文件信息成功!
是否为文件(isFile) ? true
是否为目录(isDirectory) ? false

Écrire à déposer

grammaire

Ce qui suit est écrit dans le fichier dans la syntaxe de mode asynchrone:

fs.writeFile(filename, data[, options], callback)

Si le fichier existe, la méthode écrit le contenu écraseront les anciens contenus de fichiers.

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • données - les données à écrire dans un fichier, qui peut être String (String) ou tampon (flux) objet.

  • dechoix - Ce paramètre est un objet qui contient {encodage, le mode, drapeau}.L'encodage par défaut est utf8, le mode 0666, drapeau de 'w'

  • rappel - fonction de rappel, la fonction de rappel contient des messages d'erreur que les arguments (err), retourne lors de l' écriture échoue.

Exemples

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("准备写入文件");
fs.writeFile('input.txt', '我是通过写入的文件内容!',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("数据写入成功!");
   console.log("--------我是分割线-------------")
   console.log("读取写入的数据!");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("异步读取文件数据: " + data.toString());
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备写入文件
数据写入成功!
--------我是分割线-------------
读取写入的数据!
异步读取文件数据: 我是通过写入的文件内容

Lire le dossier

grammaire

Voici le mode asynchrone pour lire la syntaxe du fichier:

fs.read(fd, buffer, offset, length, position, callback)

Cette méthode utilise un descripteur de fichier pour lire le fichier.

Paramètres

Paramètres comme suit:

  • fd - retour par la méthode fs.open () de descripteurs de fichiers.

  • tampon - les données sont écrites dans la mémoire tampon.

  • offset - tampon d'écriture de décalage est écrit.

  • longueur - Le nombre d'octets lus à partir du fichier.

  • Position - début du fichier est lu, si la position est nulle, est lu à partir de la position actuelle du pointeur de fichier.

  • rappel - fonction de rappel prend trois arguments pèchent, bytesRead, tampon, err message d'erreur, bytesRead indique le nombre d'octets lus, l'objet tampon de mémoire tampon.

Exemples

contenu input.txt du fichier:

本教程官网地址:www.w3big.com

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字节被读取");
      
      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备打开已存在的文件!
文件打开成功!
准备读取文件:
42  字节被读取
本教程官网地址:www.w3big.com

Fermez le fichier

grammaire

Voici un dossier fermé dans la syntaxe de mode asynchrone:

fs.close(fd, callback)

Cette méthode utilise un descripteur de fichier pour lire le fichier.

Paramètres

Paramètres comme suit:

  • fd - retour par la méthode fs.open () de descripteurs de fichiers.

  • rappel - fonction de rappel n'a pas de paramètres.

Exemples

contenu input.txt du fichier:

本教程官网地址:www.w3big.com

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件!");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }

      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }

      // 关闭文件
      fs.close(fd, function(err){
         if (err){
            console.log(err);
         } 
         console.log("文件关闭成功");
      });
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备打开文件!
文件打开成功!
准备读取文件!
本教程官网地址:www.w3big.com
文件关闭成功

fichier Intercept

grammaire

Ce qui suit est la syntaxe mode asynchrone interception de fichier:

fs.ftruncate(fd, len, callback)

Cette méthode utilise un descripteur de fichier pour lire le fichier.

Paramètres

Paramètres comme suit:

  • fd - retour par la méthode fs.open () de descripteurs de fichiers.

  • len - la longueur du contenu du fichier intercepté.

  • rappel - fonction de rappel n'a pas de paramètres.

Exemples

contenu input.txt du fichier:

site:www.w3big.com

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("截取10字节后的文件内容。");
   
   // 截取文件
   fs.ftruncate(fd, 10, function(err){
      if (err){
         console.log(err);
      } 
      console.log("文件截取成功。");
      console.log("读取相同的文件"); 
      fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
         if (err){
            console.log(err);
         }

         // 仅输出读取的字节
         if(bytes > 0){
            console.log(buf.slice(0, bytes).toString());
         }

         // 关闭文件
         fs.close(fd, function(err){
            if (err){
               console.log(err);
            } 
            console.log("文件关闭成功!");
         });
      });
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备打开文件!
文件打开成功!
截取10字节后的文件内容。
文件截取成功。
读取相同的文件
site:www.r
文件关闭成功

Supprimer les fichiers

grammaire

Ce qui suit est la syntaxe pour supprimer le fichier:

fs.unlink(path, callback)

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • rappel - fonction de rappel n'a pas de paramètres.

Exemples

contenu input.txt du fichier:

site:www.w3big.com

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("准备删除文件!");
fs.unlink('input.txt', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件删除成功!");
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备删除文件!
文件删除成功!

Voir le fichier input.txt nouveau et n'a trouvé aucune existe plus.


Créez un répertoire

grammaire

Ce qui suit est la syntaxe pour créer le répertoire:

fs.mkdir(path[, mode], callback)

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • Mode - définir les autorisations de répertoire, par défaut est 0777.

  • rappel - fonction de rappel n'a pas de paramètres.

Exemples

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("创建目录 /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("目录创建成功。");
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
创建目录 /tmp/test/
目录创建成功。

Lire répertoire

grammaire

Ce qui suit est la syntaxe pour lire le répertoire:

fs.readdir(path, callback)

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • rappel - fonction de rappel, la fonction de rappel prend deux arguments se trompent, les fichiers, un message d'erreur err, fichiers pour les fichiers de liste de tableau dans un répertoire.

Exemples

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("查看 /tmp 目录");
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
查看 /tmp 目录
input.out
output.out
test
test.txt

Supprimer le répertoire

grammaire

Ce qui suit est la syntaxe pour supprimer le répertoire:

fs.rmdir(path, callback)

Paramètres

Paramètres comme suit:

  • path - chemin du fichier.

  • rappel - fonction de rappel n'a pas de paramètres.

Exemples

Ensuite, nous créons fichier file.js, le code est le suivant:

var fs = require("fs");

console.log("准备删除目录 /tmp/test");
fs.rmdir("/tmp/test",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("读取 /tmp 目录");
   fs.readdir("/tmp/",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach( function (file){
          console.log( file );
      });
   });
});

Le code ci-dessus est exécuté comme suit:

$ node file.js 
准备删除目录 /tmp/test
input.out
output.out
test
test.txt
读取 /tmp 目录
……

Méthode de référence du module de fichier

Ce qui suit est une liste de fichiers de la même manière Node.js modules:

Non. Méthode & Description
1 fs.rename (oldpath, Newpath, rappel)
renommage Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
2 fs.ftruncate (fd, len, rappel)
ftruncate Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
3 fs.ftruncateSync (fd, len)
Ftruncate synchronisation ()
4 fs.truncate (chemin, len, rappel)
truncate Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
5 fs.truncateSync (chemin, len)
Synchronisation truncate ()
6 fs.chown (chemin, uid, gid, rappel)
chown Asynchronous fonction Callback (). n'a pas de paramètres, mais peut jeter.
7 fs.chownSync (chemin, uid, gid)
Synchronisation chown ()
8 fs.fchown (fd, uid, gid, rappel)
fchown Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
9 fs.fchownSync (fd, uid, gid)
Synchronisation fchown ()
10 fs.lchown (chemin, uid, gid, rappel)
lchown Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
11 fs.lchownSync (chemin, uid, gid)
Lchown synchronisation ()
12 fs.chmod (path, mode rappel)
chmod Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
13 fs.chmodSync (chemin, mode)
Synchronisation chmod ().
14 fs.fchmod (fd, le mode, rappel)
fchmod Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
15 fs.fchmodSync (fd, mode)
Synchronisation fchmod ().
16 fs.lchmod (path, mode rappel)
lchmod Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter. Uniquement disponible sur Mac OS X.
17 fs.lchmodSync (chemin, mode)
Lchmod synchronisation ().
18 fs.stat (chemin, rappel)
stat (Asynchronous). Fonction de rappel prend deux arguments se trompent, les statistiques, les statistiques sont fs.Stats objet.
19 fs.lstat (chemin, rappel)
lstat (Asynchronous). Fonction de rappel prend deux arguments se trompent, les statistiques, les statistiques sont fs.Stats objet.
20 fs.fstat (fd, rappel)
fstat (Asynchronous). Fonction de rappel prend deux arguments se trompent, les statistiques, les statistiques sont fs.Stats objet.
21 fs.statSync (chemin)
Synchronisation stat (). Fs.Stats retournent une instance de.
22 fs.lstatSync (chemin)
Synchronisation lstat (). Fs.Stats retournent une instance de.
23 fs.fstatSync (fd)
Synchronisation fstat (). Fs.Stats retournent une instance de.
24 fs.link (srcpath, dstpath, rappel)
lien asynchrone function (). Callback n'a pas de paramètres, mais peut jeter.
25 fs.linkSync (srcpath, dstpath)
lien de synchronisation ().
26 fs.symlink (srcpath, dstpath [type ], rappel)
symlink Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter. paramètre de type peut être réglé sur 'dir', 'fichier', ou 'jonction' (par défaut 'file').
27 fs.symlinkSync (srcpath, dstpath [type ])
Synchronisation symlink ().
28 fs.readlink (chemin, rappel)
readlink (Asynchronous). Fonction de rappel prend deux arguments se trompent, linkString.
29 fs.realpath (path [, cache], rappel)
realpath (Asynchronous). Fonction de rappel prend deux arguments se trompent, resolvedPath.
30 fs.realpathSync (path [, cache])
realpath synchrone (). Retourne le chemin absolu.
31 fs.unlink (chemin, rappel)
unlink Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
32 fs.unlinkSync (chemin)
Synchronisation unlink ().
33 fs.rmdir (chemin, rappel)
rmdir Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.
34 fs.rmdirSync (chemin)
Synchronisation rmdir ().
35 fs.mkdir (path [, mode], rappel)
S Asynchronous mkdir Fonction de rappel (2). N'a pas de paramètres, mais peut jeter. Mode par défaut à 0777.
36 fs.mkdirSync (path [, mode])
Synchronisation mkdir ().
37 fs.readdir (chemin, rappel)
readdir Asynchronous (3). Lire le contenu du répertoire.
38 fs.readdirSync (chemin)
Synchronisation readdir (). Retourne un tableau de la liste des fichiers.
39 fs.close (fd, rappel)
Asynchronous close function (). Callback n'a pas de paramètres, mais peut jeter.
40 fs.closeSync (fd)
Synchronisation close ().
41 fs.open (chemin, drapeaux [, mode ], rappel)
Asynchronous ouvrir le fichier.
42 fs.openSync (chemin, drapeaux [, mode ])
Version synchrone de fs.open ().
43 fs.utimes (chemin, atime, mtime, rappel)
44 fs.utimesSync (chemin, atime, mtime)
Changer horodatages de fichier, le fichier par le chemin de fichier spécifié.
45 fs.futimes (fd, atime, mtime, rappel)
46 fs.futimesSync (fd, atime, mtime)
horodatages Modifier, spécifié par le descripteur de fichier.
47 fs.fsync (fd, rappel)
Fonction de rappel asynchrone fsync. n'a pas de paramètres, mais peut jeter.
48 fs.fsyncSync (fd)
Synchronisation fsync.
49 fs.write (fd, tampon, offset, longueur [position], rappel)
Le contenu du tampon d'écriture dans le fichier spécifié par le descripteur de fichier.
50 fs.write (fd, données [, la position[, codant]], rappel)
Ecrivez le contenu du fichier sur le descripteur de fichier fd.
51 fs.writeSync (fd, tampon, offset, longueur [position])
Version synchrone fs.write ().
52 fs.writeSync (fd, données [, position [codant]])
Version synchrone fs.write ().
53 fs.read (fd, tampon, offset, longueur, la position, rappel)
Lire le contenu des documents sur le descripteur de fichier fd.
54 fs.readSync (fd, tampon, offset, longueur, position)
Version synchrone fs.read.
55 fs.readFile (filename [, options], rappel)
Asynchronous lire le contenu du fichier.
56 fs.readFileSync (filename [, options])
57 fs.writeFile (nom de fichier,lesdonnées [options], rappel)
écriture asynchrone pour le contenu du fichier.
58 fs.writeFileSync (nom de fichier,lesdonnées [options])
Version synchrone fs.writeFile.
59 fs.appendFile (nom de fichier,lesdonnées [options], rappel)
Asynchronous contenu des fichiers supplémentaires.
60 fs.appendFileSync (nom de fichier,lesdonnées [options])
La version synchrone fs.appendFile.
61 fs.watchFile (filename [, options], auditeur)
Modifier la vue du fichier.
62 fs.unwatchFile (filename [, auditeur])
Arrêtez de regarder les changements de nom de fichier.
63 fs.watch (filename [, options] [ , auditeur])
Vérifiez les changements de nom de fichier, nom de fichier peut être un fichier ou un répertoire. objet Retour fs.FSWatcher.
64 fs.exists (chemin, rappel)
Détecter un chemin donné existe.
65 fs.existsSync (chemin)
Version synchrones fs.exists.
66 fs.access (path [, mode], rappel)
Tests si le chemin d'accès spécifié des autorisations utilisateur.
67 fs.accessSync (path [, mode])
Version synchrone fs.access.
68 fs.createReadStream (path [, options])
Retour objet ReadStream.
69 fs.createWriteStream (path [, options])
Retour objet WriteStream.
70 fs.symlink (srcpath, dstpath [type ], rappel)
symlink Asynchronous function (). Callback n'a pas de paramètres, mais peut jeter.

Pour plus de détails, consultez le responsable Description du module Site du fichier: Fichier du système .