Maison  >  Article  >  interface Web  >  Partager quelques API du module fs de fichiers communs Nodejs (résumé)

Partager quelques API du module fs de fichiers communs Nodejs (résumé)

青灯夜游
青灯夜游avant
2021-08-12 09:56:022175parcourir

Cet article organise et enregistre quelques API du module NodejsFile fs couramment utilisées dans le travail, afin de ne pas l'oublier la prochaine fois.

Partager quelques API du module fs de fichiers communs Nodejs (résumé)

En tant qu'ingénieur de développement web, il est inévitable de traiter avec Nodejs. Le module fs est très utile et peut effectuer certaines opérations liées aux fichiers, mais je l'oublie toujours. J'ai l'intention de l'organiser et de l'enregistrer à nouveau aujourd'hui pour éviter de l'oublier la prochaine fois.

Synchrone et asynchrone

Les opérations sur les fichiers du module fs prennent généralement en charge les API synchrones et asynchrones, et asynchrone inclut également des fonctions de rappel et des formulaires de promesse. La synchronisation est généralement suivie des mots sync. [Apprentissage recommandé : "nodejs tutorielsync字样。【推荐学习:《nodejs 教程》】

打开、关闭文件

fs.open(path:string,callback:(err,fd)=>void)用于打开文件,获取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。fs.close(fd:number,callback:(err)=>void)用于关闭文件

//打开文件
fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作
    
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

一般用于对文件做多种操作时使用。如果你仅仅想读取文件的内容建议用fs.readFile

读取文件(目录)

读取文件:fs.readFile(path:string,callback:(err,data)=>void)

fs.readFile(path,(err,data)=>{
    //string或者buffer
    console.log(data)
})

读取目录:fs.readdir(path:string,callback:(err,files:Array98c455a79ddfebb79781bff588e7b37e)=>void)

fs.readdir("./dir",(err,fileNames)=>{
    console.log(fileNames)
})

还有一种方式通过文件描述符来读取:

fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=>void)

//分配一块长度为10的缓存区
const buffer = Buffer.alloc(10);
//打开文件
fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作:将fd对应的文件内容读取到buffer里
    //position为文件的起点
    //length为读取的长度
    //offset为缓存区起读的位置
    fs.read(fd,buffer,offset,length,position,(err,bytesLen,buffer)=>{
        //buffer为包含读到数据的原始buffer对象
        //bytesLen === length;// true
    })
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

写入文件

将数据写入文件,数据可以是字符串buffer:fs.writeFile(path,data,callback:(err)=>void)

fs.writeFile('message.txt', data, (err) => {
  if (err) throw err;
});

还有另一种方式,通过文件描述符fd来写文件:

fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作:将buffer内容写如fd对应的文件里
    //position为文件的起点
    //length为待写的长度
    //offset为缓存区起写的位置
    fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)=>{

    })
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

删除文件(目录)

删除文件:fs.unlink(path, callback:(err)=>void)

删除目录:fs.rmdir(path,callback:(err)=>void)

同时支持删除目录和文件:fs.rm(path,callback:(err)=>void)"]

Ouvrir et fermer des fichiers

fs.open(path:string,callback:(err,fd)=>void) est utilisé pour ouvrir des fichiers et obtenir Descripteur de fichiers (descripteur de fichier), effectuez des opérations sur les fichiers en fonction du descripteur de fichier obtenu. fs.close(fd:number,callback:(err)=>void) est utilisé pour fermer le fichier

fs.stat(path,(err,stat)=>{
    //stat包含了该目录或文件的大小、创建时间、更新时间,是目录还是文件等
    //stats.isDirectory()
    //stats.isFile()
})
Il est généralement utilisé lors de l'exécution de diverses opérations sur des fichiers. Si vous souhaitez simplement lire le contenu du fichier, il est recommandé d'utiliser fs.readFile

Lire le fichier (répertoire)

Lisez le fichier : fs.readFile(path:string,callback:(err,data)=>void)
//文件
fs.rename('oldFile.txt', 'newFile.txt', (err) => {
  if (err) throw err;
  console.log('Rename complete!');
});
//目录
fs.rename('oldFileDir', 'newFileDir', (err) => {
  if (err) throw err;
  console.log('Rename complete!');
});
Lire le répertoire :fs.readdir(path:string,callback : (err,files : Array98c455a79ddfebb79781bff588e7b37e)=>void)

rrreee

Il existe une autre façon de lire le descripteur de fichier :

fs.read(fd,buffer,offset,length, position,callback : (err,bytesLen,buffer)=>void)rrreee

Écrire dans un fichier

🎜🎜Écrire des données dans le fichier, les données peuvent be 🎜string🎜 Ou 🎜buffer🎜:fs.writeFile(path,data,callback:(err)=>void)🎜rrreee🎜Il existe un autre moyen, via le descripteur de fichier fd code>Pour écrire des fichiers :🎜rrreee

🎜Supprimer des fichiers (répertoires)🎜🎜🎜Supprimer des fichiers :fs.unlink(path, callback:(err) =>void )🎜🎜Supprimer des répertoires : fs.rmdir(path,callback:(err)=>void)🎜🎜Prend en charge la suppression de répertoires et de fichiers en même temps : fs.rm(path , callback:(err)=>void)🎜🎜🎜Afficher les informations d'état du répertoire (fichier)🎜🎜rrreee🎜🎜Renommer🎜🎜🎜Le renommage inclut le renommage des fichiers et des répertoires 🎜rrreee🎜🎜Enfin🎜 🎜🎜Merci d'avoir lu, si vous avez des questions, veuillez laisser un message pour en discuter, merci ! 🎜🎜Pour plus de connaissances sur la programmation, veuillez visiter : 🎜Introduction à la programmation🎜 ! ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer