Latest web development tutorials

Node.js файловой системы

Node.js обеспечивает аналогичный набор UNIX (POSIX) стандартных операций с файлами API. Узел Импорт файлов Системный модуль (фс) синтаксис выглядит следующим образом:

var fs = require("fs")

Асинхронный и синхронный

Node.js файловая система (фс Module) методы модуля имеют асинхронные и синхронные версии, такие как чтение содержание функции документа имеет асинхронный fs.readFile () и синхронизация fs.readFileSync ().

Асинхронные функции метод последнего параметра функции обратного вызова, первый аргумент функции обратного вызова содержит сообщение об ошибке (ошибка).

Я рекомендую это использовать асинхронный метод, по сравнению с синхронным, асинхронным способом для более высокой производительности, быстрее, и нет никаких препятствий.

примеров

Создание input.txt файл, следующим образом:

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

Создание file.js файл, следующим образом:

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("程序执行完毕。");

Приведенный выше код выполняется следующим образом:

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

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

Далее, давайте понять конкретные методы в рамках файловой системы Node.js.


Открыть файл

грамматика

Ниже приведен открытый файл в асинхронном режиме синтаксиса:

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

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • флаги - открыть файл поведения.Конкретные значения описаны ниже.

  • режим - установить режим доступа к файлу (разрешений), создать файл разрешения по умолчанию 0666 (чтение, запись).

  • Обратный вызов - функция обратного вызова принимает два параметра, например: обратный вызов (ERR, FD).

Параметр флаги могут быть следующие значения:

флаг описание
R Откройте файл в режиме чтения. Если файл не существует бросок.
г + Откройте файл в режиме чтения-записи. Если файл не существует бросок.
Р.С. Прочитайте файл в синхронном режиме.
RS + Синхронизированным образом для чтения и записи файлов.
вес Откройте файл в режиме записи, если файл не существует, он будет создан.
WX Подобное 'ш', но если файл путь существует, сбой записи файла.
ш + Откройте файл в режиме чтения-записи, если файл не существует, он будет создан.
WX + Аналогично 'ш +', но если файл существует путь, файл чтения и записи не удалась.
Откройте файл в режиме добавления, если файл не существует, он будет создан.
топор Подобно 'A', но если файл существует путь, прикрепление файла не удается.
а + Чтобы прочитать файл, открытый в режиме добавления, если файл не существует, он будет создан.
ах + Подобный "A +", но если файл существует путь, файл читается дополнительные сбои.

примеров

Далее мы создаем file.js файл и открывает файл input.txt читать и писать код следующим образом:

var fs = require("fs");

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

Приведенный выше код выполняется следующим образом:

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

Получение информации о файле

грамматика

Следующие документы для получения информации с помощью асинхронного синтаксиса режима:

fs.stat(path, callback)

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • Обратный вызов - функция обратного вызова принимает два параметра, например:(ERR, статистика), статистика являются fs.Stats объекта.

После того, как fs.stat (путь) исполнения, экземпляр класса будет возвращен к своей функции обратного вызова статистике. Вы можете определить соответствующие атрибуты файла по статистике класс предоставляет метод. Например, чтобы определить, являются ли файлы:

var fs = require('fs');

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

Методы класса статистика являются:

способ описание
stats.isFile () Если файл возвращает истину, в противном случае она возвращает ложь.
stats.isDirectory () Если каталог возвращает истину, в противном случае она возвращает ложь.
stats.isBlockDevice () Если блочное устройство возвращает истину, в противном случае она возвращает ложь.
stats.isCharacterDevice () Если устройство символ возвращает истину, в противном случае возвращает ложь.
stats.isSymbolicLink () Если это мягкая ссылка возвращает истину, в противном случае она возвращает ложь.
stats.isFIFO () Если FIFO, возвращает истину, в противном случае она возвращает ложь. FIFO представляет собой особый тип командного конвейера UNIX.
stats.isSocket () Если сокет возвращает истину, в противном случае она возвращает ложь.

примеров

Далее мы создаем file.js файл, код выглядит следующим образом:

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

Приведенный выше код выполняется следующим образом:

$ 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

Запись в файл

грамматика

Далее записывается в файл в асинхронном режиме синтаксиса:

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

Если файл существует, метод записывает содержимое будет перезаписать старое содержимое файла.

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • данные - данные , которые должны быть записаны в файл, который может быть String (String) или буфер (поток) объект.

  • Параметры - Этот параметр представляет собой объект , который содержит {кодирования, мода, флаг}.Кодировка по умолчанию utf8, 0666, флаг 'W'

  • Обратный вызов - функция обратного вызова, функция обратного вызова содержит только сообщения об ошибках аргументы (ERR), возвращает при записи терпит неудачу.

примеров

Далее мы создаем file.js файл, код выглядит следующим образом:

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

Приведенный выше код выполняется следующим образом:

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

Прочитайте файл

грамматика

Здесь Асинхронный режим для чтения синтаксис файла:

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

Этот метод использует дескриптор файла для чтения файла.

параметры

Параметры следующим образом:

  • FD - обратно через fs.open метод () файловых дескрипторов.

  • буфер - данные записываются в буфер.

  • смещение - смещение буфера записи записывается.

  • Длина - количество байтов , считанных из файла.

  • положение - начало файла считывается, если позиция имеет нулевое значение, считывается из текущей позиции указателя файла.

  • Обратный вызов - функция обратного вызова принимает три аргумента : заблуждаетесь, BytesRead, буфер, ERR сообщение об ошибке, BytesRead указывает количество байтов для чтения, буфер объект буфера.

примеров

input.txt содержимое файла:

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

Далее мы создаем file.js файл, код выглядит следующим образом:

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

Приведенный выше код выполняется следующим образом:

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

Закройте файл

грамматика

Ниже приводится замкнутый файл в асинхронном режиме синтаксиса:

fs.close(fd, callback)

Этот метод использует дескриптор файла для чтения файла.

параметры

Параметры следующим образом:

  • FD - обратно через fs.open метод () файловых дескрипторов.

  • Обратный вызов - функция обратного вызова не имеет параметров.

примеров

input.txt содержимое файла:

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

Далее мы создаем file.js файл, код выглядит следующим образом:

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("文件关闭成功");
      });
   });
});

Приведенный выше код выполняется следующим образом:

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

Intercept файл

грамматика

Ниже приведен синтаксис асинхронный режим перехвата файла:

fs.ftruncate(fd, len, callback)

Этот метод использует дескриптор файла для чтения файла.

параметры

Параметры следующим образом:

  • FD - обратно через fs.open метод () файловых дескрипторов.

  • Len - длина содержимого файла перехваченного.

  • Обратный вызов - функция обратного вызова не имеет параметров.

примеров

input.txt содержимое файла:

site:www.w3big.com

Далее мы создаем file.js файл, код выглядит следующим образом:

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("文件关闭成功!");
         });
      });
   });
});

Приведенный выше код выполняется следующим образом:

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

Удалить файлы

грамматика

Ниже приведен синтаксис для удаления файла:

fs.unlink(path, callback)

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • Обратный вызов - функция обратного вызова не имеет параметров.

примеров

input.txt содержимое файла:

site:www.w3big.com

Далее мы создаем file.js файл, код выглядит следующим образом:

var fs = require("fs");

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

Приведенный выше код выполняется следующим образом:

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

См input.txt файл еще раз и не нашел больше не существует.


Создание каталога

грамматика

Ниже приведен синтаксис для создания каталога:

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

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • режим - установить права доступа для каталога, по умолчанию 0777.

  • Обратный вызов - функция обратного вызова не имеет параметров.

примеров

Далее мы создаем file.js файл, код выглядит следующим образом:

var fs = require("fs");

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

Приведенный выше код выполняется следующим образом:

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

Читайте каталог

грамматика

Ниже приведен синтаксис для чтения каталога:

fs.readdir(path, callback)

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • Обратный вызов - функция обратного вызова, функция обратного вызова принимает два аргумента : заблуждаетесь, файлы, заблуждается сообщение об ошибке, файлы для списка массива файлов в каталоге.

примеров

Далее мы создаем file.js файл, код выглядит следующим образом:

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 );
   });
});

Приведенный выше код выполняется следующим образом:

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

удалить каталог

грамматика

Ниже приведен синтаксис для удаления каталога:

fs.rmdir(path, callback)

параметры

Параметры следующим образом:

  • путь - путь к файлу.

  • Обратный вызов - функция обратного вызова не имеет параметров.

примеров

Далее мы создаем file.js файл, код выглядит следующим образом:

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 );
      });
   });
});

Приведенный выше код выполняется следующим образом:

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

Эталонный метод файла модуля

Ниже приведен список файлов, таким же образом, Node.js модули:

Нет. Метод и описание
1 fs.rename (OLDPATH, NEWPATH, обратный вызов)
Асинхронный Rename (). Функция обратного вызова не имеет параметров, но может бросить.
2 fs.ftruncate (FD, Len, обратный вызов)
Асинхронный ftruncate (). Функция обратного вызова не имеет параметров, но может бросить.
3 fs.ftruncateSync (FD, Len)
Синхронизация ftruncate ()
4 fs.truncate (путь, Len, обратный вызов)
Асинхронный усечение (). Функция обратного вызова не имеет параметров, но может бросить.
5 fs.truncateSync (путь, длина)
Синхронизация усечение ()
6 fs.chown (путь, UID, GID, обратный вызов)
Асинхронный Чаун (). Функция обратного вызова не имеет параметров, но может бросить.
7 fs.chownSync (путь, UID, GID)
Синхронизация Чаун ()
8 fs.fchown (FD, UID, GID, обратный вызов)
Асинхронный fchown (). Функция обратного вызова не имеет параметров, но может бросить.
9 fs.fchownSync (FD, UID, GID)
Синхронизация fchown ()
10 fs.lchown (путь, UID, GID, обратный вызов)
Асинхронный lchown (). Функция обратного вызова не имеет параметров, но может бросить.
11 fs.lchownSync (путь, UID, GID)
Синхронизация lchown ()
12 fs.chmod (путь, режим, обратный вызов)
Асинхронный CHMOD (). Функция обратного вызова не имеет параметров, но может бросить.
13 fs.chmodSync (путь, режим)
Синхронизация CHMOD ().
14 fs.fchmod (FD, режим, обратный вызов)
Асинхронный fchmod (). Функция обратного вызова не имеет параметров, но может бросить.
15 fs.fchmodSync (FD, режим)
Синхронизация fchmod ().
16 fs.lchmod (путь, режим, обратный вызов)
Асинхронный lchmod (). Функция обратного вызова не имеет параметров, но может бросить. Доступно только на Mac OS X.
17 fs.lchmodSync (путь, режим)
Синхронизация lchmod ().
18 fs.stat (путь, обратный вызов)
Асинхронный стат (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта.
19 fs.lstat (путь, обратный вызов)
Асинхронный lstat (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта.
20 fs.fstat (FD, обратный вызов)
Асинхронный fstat (). Функция обратного вызова принимает два аргумента: заблуждаетесь, статистика, статистика являются fs.Stats объекта.
21 fs.statSync (путь)
Синхронизация стат (). Fs.Stats возвращают экземпляр.
22 fs.lstatSync (путь)
Синхронизация lstat (). Fs.Stats возвращают экземпляр.
23 fs.fstatSync (FD)
Синхронизация fstat (). Fs.Stats возвращают экземпляр.
24 fs.link (srcpath, dstpath, обратный вызов)
Асинхронный линия связи (). Функция обратного вызова не имеет параметров, но может бросить.
25 fs.linkSync (srcpath, dstpath)
ссылка синхронизации ().
26 fs.symlink (srcpath, dstpath [, тип ], обратный вызов)
Асинхронный символьная (). Функция обратного вызова не имеет параметров, но может бросить. Параметр типа может быть установлен в 'директории', 'файл', или '' перехода ( 'файл' по умолчанию).
27 fs.symlinkSync (srcpath, dstpath [, тип ])
Синхронизация символьная ().
28 fs.readlink (путь, обратный вызов)
Асинхронный readlink (). Функция обратного вызова принимает два аргумента: заблуждаетесь, linkString.
29 fs.realpath (путь [кэш], обратный вызов)
Асинхронный Realpath (). Функция обратного вызова принимает два аргумента: заблуждаетесь, resolvedPath.
30 fs.realpathSync (путь [кэш])
Синхронный Realpath (). Возвращает абсолютный путь.
31 fs.unlink (путь, обратный вызов)
Асинхронный Разорвать связь (). Функция обратного вызова не имеет параметров, но может бросить.
32 fs.unlinkSync (путь)
Синхронизация Разорвать связь ().
33 fs.rmdir (путь, обратный вызов)
Асинхронный RmDir (). Функция обратного вызова не имеет параметров, но может бросить.
34 fs.rmdirSync (путь)
Синхронизация RmDir ().
35 fs.mkdir (путь [режим], обратный вызов)
S Асинхронный MkDir (2). Функция обратного вызова не имеет параметров, но может бросить. Режим по умолчанию 0777.
36 fs.mkdirSync (путь [режим])
Синхронизация MkDir ().
37 fs.readdir (путь, обратный вызов)
Асинхронный READDIR (3). Прочитайте содержимое каталога.
38 fs.readdirSync (путь)
Синхронизация READDIR (). Возвращает массив списка файлов.
39 fs.close (FD, обратный вызов)
Асинхронный близко (). Функция обратного вызова не имеет параметров, но может бросить.
40 fs.closeSync (FD)
Синхронизация близко ().
41 fs.open (путь, флаги [режим ], обратный вызов)
Асинхронный открыть файл.
42 fs.openSync (путь, флаги [, режим ])
Синхронная версия fs.open ().
43 fs.utimes (путь, Atime, время изменения, обратный вызов)
44 fs.utimesSync (путь, Atime, время изменения)
Изменение временных меток файла, файл по пути к файлу указанного.
45 fs.futimes (FD, Atime, время изменения, обратный вызов)
46 fs.futimesSync (FD, Atime, время изменения)
временные метки файла изменений, указанных в дескрипторе файла.
47 fs.fsync (FD, обратный вызов)
Асинхронный FSYNC. Функция обратного вызова не имеет параметров, но может бросить.
48 fs.fsyncSync (FD)
Синхронизация FSYNC.
49 fs.write (FD, буфер, смещение, длина [, позиция], обратный вызов)
Содержимое буфера записи в файл, указанный дескриптором файла.
50 fs.write (FD, данные [, позиция [, кодирование]], обратный вызов)
Записать в содержимое файла на дескриптор файла ФД.
51 fs.writeSync (FD, буфер, смещение, длина [, позиция])
Синхронная версия fs.write ().
52 fs.writeSync (FD, данные [, позиция [, кодирование]])
Синхронная версия fs.write ().
53 fs.read (FD, буфер, смещение, длина, положение, обратный вызов)
Прочитайте содержание документов на дескриптор файла ФД.
54 fs.readSync (FD, буфер, смещение, длина, положение)
Синхронная версия fs.read.
55 fs.readFile (имя файла [, опции], обратный вызов)
Асинхронный прочитать содержимое файла.
56 fs.readFileSync (имя файла [, опции])
57 fs.writeFile (имя файла, данные [, опции ], обратный вызов)
Асинхронный запись для содержимого файла.
58 fs.writeFileSync (имя файла, данные [, опции ])
Синхронная версия fs.writeFile.
59 fs.appendFile (имя файла, данные [, опции ], обратный вызов)
Асинхронные содержание дополнительного файла.
60 fs.appendFileSync (имя файла, данные [, опции ])
Синхронная версия fs.appendFile.
61 fs.watchFile (имя файла [, опции], слушатель)
Изменить представление файла.
62 fs.unwatchFile (имя файла [, слушатель])
Остановить просмотр изменения имени файла.
63 fs.watch (имя файла [, опции] [ , слушатель])
Проверьте изменения имени файла, имя файла может быть файл или каталог. Назад fs.FSWatcher объект.
64 fs.exists (путь, обратный вызов)
Обнаружить данный путь существует.
65 fs.existsSync (путь)
Синхронные версия fs.exists.
66 fs.access (путь [режим], обратный вызов)
Проверяет, является ли указанный путь разрешения пользователя.
67 fs.accessSync (путь [режим])
Синхронная версия fs.access.
68 fs.createReadStream (путь [, опции])
Назад ReadStream объект.
69 fs.createWriteStream (путь [, опции])
Назад WriteStream объект.
70 fs.symlink (srcpath, dstpath [, тип ], обратный вызов)
Асинхронный символьная (). Функция обратного вызова не имеет параметров, но может бросить.

Для получения более подробной информации, проверить на официальном веб - модуля файла Описание: Файл системы .