📜  Node.js fs.filehandle.chmod() 方法

📅  最后修改于: 2022-05-13 01:56:40.147000             🧑  作者: Mango

Node.js fs.filehandle.chmod() 方法

fs.filehandle.chmod()方法是文件系统模块中fs.filehandle类的内置应用程序编程接口,用于更改特定文件的权限。

句法:

const filehandle.chmod( mode )

参数:此方法接受保存整数值的单参数模式
返回值:此方法返回一个未包含任何值的待处理承诺。

下面的程序说明了fs.filehandle.chmod()方法的使用。

示例 1:文件名:index.js

Javascript
// Node.js program to demonstrate the
// fs.filehandle.chmod() method
const fs = require('fs');
const fsPromises = fs.promises;
 
console.log("content of file before "
        + "operation :- " +
        (fs.readFileSync('example.txt')));
 
// Initiating asyncrionise function
async function funct() {
 
    // Initializing filehandle
    let filehandle = null;
 
    try {
 
        // Creating and initiating filehandle
        filehandle = await fsPromises
                .open('example.txt', 'r+');
 
        // Modifying the file permission
        // by using chmod() method
        const prom = filehandle.chmod(1);
 
    } finally {
 
        if (filehandle) {
 
            // Close the file if it is opened.
            console.log("permission is changed"
                        + " to read only");
 
            console.log("content of file before"
                    + " operation :- " +
                (fs.readFileSync('example.txt')));
 
            await filehandle.close();
        }
    }
}
 
funct().catch(console.error);


Javascript
// Node.js program to demonstrate the
// fs.filehandle.chmod() method
const fs = require('fs');
const fsPromises = fs.promises;
 
// data for the new file
let data = "This is a file containing"
        + " a collection of books.";
 
// Name of the file to be created
let file = "books.txt";
 
// Creating the new file 'books.txt'
fs.writeFile(file, data, (err) => {
 
    // Catching error
    if (err) {
        console.log(err);
    }
});
 
// Using fs.exists() method
fs.exists(file, (exists) => {
    if (exists) {
        console.log("content of file "
            + "before operation :- " +
            (fs.readFileSync(file)));
    }
});
 
// Initiating asyncrionise function
async function funct() {
 
    // Initializing filehandle
    let filehandle = null;
 
    try {
 
        // Creating and initiating  filehandle
        filehandle = await fsPromises.open(file, 'r+');
 
        // Modifying the file permission
        // by using chmod() method
        const prom = filehandle.chmod(1);
 
    } finally {
 
        if (filehandle) {
 
            // Close the file if it is opened.
            console.log("permission is "
                + "changed to read only");
                 
            console.log("content of file"
                + "after operation :- " +
                (fs.readFileSync(file)));
 
            await filehandle.close();
        }
    }
}
 
funct().catch(console.error);


运行程序前的目录结构:

运行程序后的目录结构:

使用以下命令运行index.js文件:

node index.js

输出:

示例 2:文件名:index.js

Javascript

// Node.js program to demonstrate the
// fs.filehandle.chmod() method
const fs = require('fs');
const fsPromises = fs.promises;
 
// data for the new file
let data = "This is a file containing"
        + " a collection of books.";
 
// Name of the file to be created
let file = "books.txt";
 
// Creating the new file 'books.txt'
fs.writeFile(file, data, (err) => {
 
    // Catching error
    if (err) {
        console.log(err);
    }
});
 
// Using fs.exists() method
fs.exists(file, (exists) => {
    if (exists) {
        console.log("content of file "
            + "before operation :- " +
            (fs.readFileSync(file)));
    }
});
 
// Initiating asyncrionise function
async function funct() {
 
    // Initializing filehandle
    let filehandle = null;
 
    try {
 
        // Creating and initiating  filehandle
        filehandle = await fsPromises.open(file, 'r+');
 
        // Modifying the file permission
        // by using chmod() method
        const prom = filehandle.chmod(1);
 
    } finally {
 
        if (filehandle) {
 
            // Close the file if it is opened.
            console.log("permission is "
                + "changed to read only");
                 
            console.log("content of file"
                + "after operation :- " +
                (fs.readFileSync(file)));
 
            await filehandle.close();
        }
    }
}
 
funct().catch(console.error);

运行程序前的目录结构:

运行程序后的目录结构:

使用以下命令运行index.js文件:

node index.js

输出:

参考: https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_filehandle_chmod_mode