
Cómo comenzar rápidamente con VUE3.0: ingrese al
El módulo de ruta se utiliza para procesar rutas y archivos y proporciona muchos métodos.
Un requisito dees concatenar la ruta y el nombre del archivo.
const basePath = '/usuario/por qué' const filename = 'abc.txt'
Entonces alguien usará empalme de cadenas para empalmar.
const filePath = basePath + '/' + nombre de archivo console.log(filePath);
aunque no hay ningún problema con este resultado, considerando diferentes sistemas, el sistema Windows puede usar o \ o / como separador de ruta, mientras que los sistemas operativos Unix de Mac OS y Linux usan / como. el símbolo del separador de ruta.

Para resolver el problema anterior, podemos usar path.resolve para unir rutas.
ruta constante = requerir('ruta')
const basePath = '/usuario/por qué'
nombre de archivo constante = 'abc.txt'
const filePath = ruta.resolve(basePath, nombre de archivo)
console.log(filePath); 
const path = require('path')
const filePath = '/Usuario/jaja/abc.txt'
console.log(ruta.dirname(filePath));
console.log(path.basename(filePath));
console.log(ruta.extname(filePath)); 
Si queremos unir varias rutas, pero diferentes sistemas operativos pueden usar delimitadores diferentes, podemos usar la función path.join.
ruta constante = requerir('ruta')
ruta base constante = '/Usuario/jaja'
nombre de archivo constante = 'abc.txt'
const filePath = ruta.join(ruta base, nombre de archivo)
console.log(filePath); 
Si queremos unir un archivo y una carpeta, podemos usar path.resolve.
ruta base constante = 'Usuario/jaja' nombre de archivo constante = 'abc.txt'

Path.resolve y path.join también se pueden utilizar para unir rutas, entonces, ¿cuál es su diferencia?
ruta base constante = '../Usuario/jaja' nombre de archivo constante = './abc.txt' const otro nombre = './haha.js' const filePath1 = ruta.join(ruta base, nombre de archivo, otro nombre) console.log(filePath1); const filePath2 = ruta.resolve(ruta base, nombre de archivo, otro nombre) console.log(filePath2);
Podemos ver la diferencia.

proporcionan tres métodos operativos:
Operación de archivo síncrona: el código se bloqueará y no continuará ejecutando
la función de devolución de llamada asíncrona. Operación de archivo: el código no se bloqueará y es necesario ejecutar una función de devolución de llamada. pasado cuando se obtiene el resultado, la función de devolución de llamada ejecuta
un archivo de operación de Promesa asincrónica: el código no se bloqueará. Las operaciones del método de llamada a través de fs.promises devolverán una Promesa, que se puede procesar y capturar.
método 1 operación sincrónica: fs.statSync
const fs = require('fs')
ruta de archivo constante = './abc.txt'
información constante = fs.statSync (ruta de archivo)
console.log('Código que debe ejecutarse más adelante');
consola.log(información); 
Método 2 operación asincrónica
fs.stat(filepath, (err, info) => {
si(errar) {
consola.log(err);
devolver
}
consola.log(información);
console.log(info.isFile()); // Determina si es un archivo console.log(info.isDirectory()); // Determina si es una carpeta})
console.log('Código que debe ejecutarse más tarde'); Método tres: Promesa
fs.promises.stat(filepath).then(info => {
consola.log(información);
}).catch(err => {
consola.log(err);
})
console.log('Código que se ejecutará posteriormente'); nodo descriptor de archivo asigna un descriptor de archivo numérico a todos los archivos abiertos. Todas las operaciones del sistema de archivos utilizan estos descriptores de archivos para identificar y rastrear cada archivo específico.
El método fs.open() se utiliza para asignar un nuevo descriptor de archivo fd. Una vez asignado, el descriptor de archivo se puede utilizar para leer datos del archivo, escribir datos en el archivo o solicitar información sobre el archivo.
constante fs = requerir('fs')
fs.open('./abc.txt', (err, fd) => {
si(errar) {
consola.log(err);
devolver
}
// Obtener información del archivo a través de descriptores de archivo fs.fstat(fd, (err, info) => {
consola.log(información);
})
}) fs.readFile(ruta[, opciones], devolución de llamada): lee el contenido del archivo
fs.writeFile(ruta[, opciones], devolución de llamada): escribe el contenido en el archivo
parámetros de opción:
bandera: modo escrito
codificación:
escritura de archivos
de codificación de caracteresfs.writeFile('./abc.txt', content, {flag: "a"}, err => {
consola.log(err);
}) Lectura de archivos
fs.readFile('./abc.txt', (err, data) => {
consola.log(datos);
}) Si no se completa la codificación, se devolverá el resultado Buffer (binario).

fs.readFile('./abc.txt', {codificación: 'utf-8'}, (err, datos) => {
consola.log(datos);
}) 
Utilice fs.mkdir() o fs.mkdirSync para crear una nueva carpeta.
constante fs = requerir('fs')
//Crear carpeta const dirname = './jaja'
if(!fs.existsSync(nombredir)) {
fs.mkdir(nombredir, (err) => {
consola.log(err);
})
} fs.readdir
fs.readdir(dirname, (err, files) => {
consola.log(archivos);
}) Obtenga todos los archivos en la carpeta. En este momento, el directorio se muestra en la siguiente figura. Puede usar la recursividad.

constante fs = requerir('fs')
ruta constante = requerir('ruta')
const dirname = './jaja'
función getFiles(nombredir) {
fs.readdir(nombredir, {withFileTypes: true}, (err, archivos) => {
// consola.log(archivos);
for(dejar archivo de archivos) {
// Determinar si es una carpeta if(file.isDirectory()) {
const filepath = ruta.resolve(dirname, file.name)
getFiles(ruta del archivo)
} demás {
console.log(archivo.nombre);
}
}
})
}
getFiles(dirname) Puede usar fs.rename para cambiar el nombre de la carpeta.
fs.rename('./jaja', './xixi', err => {
consola.log(err);
})