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
输出:
content of file before operation :- Content of example.txt file
permission is changed to read only
content of file after operation :- Content of example.txt file
示例 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
输出:
content of file before operation :- This is a file containing a collection of books.
permission is changed to read only
content of file after operation :- This is a file containing a collection of books.
参考: https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_filehandle_chmod_mode