Как быстро начать работу с VUE3.0: войдите в
Модуль пути используется для обработки путей и файлов и предоставляет множество методов.
Одним из требованийявляется объединение пути и имени файла.
const basePath = '/пользователь/почему' const filename = 'abc.txt'
Тогда кто-то будет использовать сращивание строк для сращивания.
const filePath = basePath + '/' + имя файла console.log(filePath);
Хотя с таким результатом проблем нет, учитывая разные системы, система Windows может использовать или \ или / в качестве разделителя пути, тогда как операционные системы Unix Mac OS и Linux используют / в качестве разделителя пути. символ разделителя пути.
Чтобы решить вышеуказанную проблему, мы можем использовать path.resolve для объединения путей.
константный путь = требуется («путь») const basePath = '/пользователь/почему' константное имя файла = 'abc.txt' const filePath = path.resolve(basePath, имя файла) console.log(путь к файлу);
const path = require('path') const filePath = '/User/haha/abc.txt' console.log(path.dirname(filePath)); console.log(path.basename(filePath)); console.log(path.extname(filePath));
Если мы хотим объединить несколько путей, но разные операционные системы могут использовать разные разделители, мы можем использовать функцию path.join.
константный путь = требуется («путь») const basepath = '/User/ха-ха' константное имя файла = 'abc.txt' const filePath = path.join(базовый путь, имя файла) console.log(путь к файлу);
Если мы хотим объединить файл и папку, мы можем использовать path.resolve.
const basepath = 'Пользователь/ха-ха' константное имя файла = 'abc.txt'
Path.resolve и path.join также можно использовать для объединения путей, в чем же их разница?
const basepath = '../Пользователь/ха-ха' const имя файла = './abc.txt' const другое имя = './haha.js' const filePath1 = path.join(базовый путь, имя файла, другое имя) console.log(filePath1); const filePath2 = path.resolve(базовый путь, имя файла, другое имя) console.log(filePath2);
Мы видим разницу.
Большинство API-интерфейсов файловой системы nodejsпредоставляют три метода работы:
Синхронная операция с файлом: код будет заблокирован и не будет продолжать выполнять
асинхронную функцию обратного вызова. Операция с файлом: код не будет заблокирован, и потребуется функция обратного вызова. передается при получении результата. Функция обратного вызова выполняет
файл асинхронной операции Promise: код не будет заблокирован. Вызов операций метода через fs.promises вернет Promise, который можно будет обработать и перехватить.
методом 1: fs.statSync
const fs = require('fs') константный путь к файлу = './abc.txt' константная информация = fs.statSync(путь к файлу) console.log('Код, который необходимо выполнить позже'); console.log(информация);
Асинхронная операция метода 2
fs.stat(filepath, (err, info) => { если (ошибка) { console.log(ошибка); возвращаться } console.log(информация); console.log(info.isFile()); // Определяем, является ли это файлом console.log(info.isDirectory()); // Определяем, является ли это папкой}) console.log('Код, который необходимо выполнить позже');
Способ третий: Обещание
fs.promises.stat(filepath).then(info => { console.log(информация); }).catch(err => { console.log(ошибка); }) console.log('Код, который будет выполнен впоследствии');Узел
присваивает числовой дескриптор файла всем открытым файлам. Все операции файловой системы используют эти файловые дескрипторы для идентификации и отслеживания каждого конкретного файла.
Метод fs.open() используется для выделения нового файлового дескриптора fd. После выделения дескриптор файла можно использовать для чтения данных из файла, записи данных в файл или запроса информации о файле.
const fs = require('fs') fs.open('./abc.txt', (err, fd) => { если (ошибка) { console.log(ошибка); возвращаться } // Получаем информацию о файле через файловые дескрипторы fs.fstat(fd, (err, info) => { console.log(информация); }) })
fs.readFile(path[, options], callback): прочитать содержимое файла
fs.writeFile(path[, options], callback): записать содержимое в
параметры файла:
флаг: записанный режим
кодировка:запись файла
кодировки символов
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { console.log(ошибка); })
Чтение файла
fs.readFile('./abc.txt', (ошибка, данные) => { console.log(данные); })
Если кодировка не заполнена, будет возвращен результат Buffer (двоичный).
fs.readFile('./abc.txt', {кодировка: 'utf-8'}, (ошибка, данные) => { console.log(данные); })
Используйте fs.mkdir() или fs.mkdirSync, чтобы создать новую папку.
const fs = require('fs') //Создаем папку const dirname = './хаха' if(!fs.existsSync(имя_каталога)) { fs.mkdir(имя_каталога, (ошибка) => { console.log(ошибка); }) }
fs.readdir
fs.readdir(dirname, (err, files) => { console.log(файлы); })
Получите все файлы в папке. На данный момент каталог такой, как показано на рисунке ниже. Вы можете использовать рекурсию.
const fs = require('fs') константный путь = требуется («путь») const имя_каталога = './ха-ха' функция getFiles(имя_каталога) { fs.readdir(dirname, {withFileTypes: true}, (ошибка, файлы) => { // console.log(файлы); for(пусть файл файлов) { // Определяем, является ли это папкой if(file.isDirectory()) { const filepath = path.resolve(имя_каталога, file.name) getFiles (путь к файлу) } еще { console.log(file.name); } } }) } getFiles(dirname)
Вы можете использовать fs.rename для переименования папки.
fs.rename('./хаха', './xixi', err => { console.log(ошибка); })