Làm cách nào để kiểm tra xem tệp có thể thực thi trong node.js không?Làm cách nào để kiểm tra xem tệp có thể thực thi trong node.js không?
Có lẽ cái gì đó như
fs.isExecutable(function (isExecutable) {
})
Làm cách nào để kiểm tra xem tệp có thể thực thi trong node.js không?Làm cách nào để kiểm tra xem tệp có thể thực thi trong node.js không?
Có lẽ cái gì đó như
fs.isExecutable(function (isExecutable) {
})
Bạn sẽ sử dụng cuộc gọi fs.stat
cho điều đó.
Cuộc gọi fs.stat
trả về đối tượng fs.Stats.
Trong đối tượng đó là thuộc tính mode
. Chế độ sẽ cho bạn biết liệu tệp có thể thực thi hay không.
Trong trường hợp của tôi, tôi tạo ra một tập tin và đã làm một chmod 755 test_file
và sau đó chạy nó thông qua đoạn mã sau:
var fs = require('fs');
test = fs.statSync('test_file');
console.log(test);
gì tôi đã cho test.mode
là 33261.
This link là hữu ích để chuyển đổi mode
trở lại để unix tập tin cho phép tương đương.
Trong Node phương pháp fs.stat
trả về một đối tượng fs.Stats
, bạn có thể nhận được sự cho phép tập tin thông qua thuộc tính fs.Stats.mode. Từ bài đăng này: Nodejs File Permissions
Hãy xem https://www.npmjs.com/package/executable nó thậm chí còn có một phương pháp .sync()
executable('bash').then(exec => {
console.log(exec);
//=> true
});
Một tùy chọn khác mà chỉ dựa trên các built-in fs
mô-đun là sử dụng một trong hai fs.access hay fs.accessSync. Phương pháp này dễ hơn là nhận và phân tích cú pháp chế độ tệp. Ví dụ:
const fs = require('fs');
fs.access('./foobar.sh', fs.constants.X_OK, (err) => {
console.log(err ? 'cannot execute' : 'can execute');
});
đọc/ghi, hoặc thực hiện? chúng ta cần có khả năng thực thi tập tin –
Điểm tốt. Tôi đã cập nhật ví dụ để phù hợp với câu hỏi cụ thể. –
Cũng có một mô-đun rất hữu ích [chế độ cho phép] (https://github.com/mmalecki/mode-to-permissions) - nếu bạn không muốn gây rối với chi tiết . – tomekwi
phải, tôi sẽ upvote này, nếu nó giải thích làm thế nào để tìm ra một tập tin đã được thực thi cho các chế độ –