2013-06-28 40 views
18

Tôi muốn xóa nội dung của tệp văn bản đơn giản với node.js. Hoặc thay thế tệp bằng tệp mới/trống.Node.js/Xóa nội dung trong tệp

Làm cách nào để đạt được điều này trong nút?

+3

Bạn đã xem ở đây chưa? http://nodejs.org/api/fs.html – Dan455

+3

bị bỏ qua vì thiếu nghiên cứu –

+1

Đây không phải là hành vi mặc định của fs.writeFile, nếu bạn không cung cấp cờ ??? Nó thực sự khó khăn hơn để nối thêm vào một tập tin ... – ChrisCM

Trả lời

40

Bạn đang tìm kiếm fs.truncate hoặc fs.writeFile

Một trong những điều sau đây sẽ làm việc:

var fs = require('fs') 
fs.truncate('/path/to/file', 0, function(){console.log('done')}) 

hoặc

var fs = require('fs') 
fs.writeFile('/path/to/file', '', function(){console.log('done')}) 

Cũng synchronous versions của both functions rằng bạn không nên sử dụng là.

+2

+1 để không xóa tệp và ghi vào cùng một tệp! – ChrisCM

+0

Bạn có thể giải thích lý do tại sao các phiên bản đồng bộ là không mong muốn? –

+1

Chắc chắn! Lý do chính là nút đó là đơn luồng (cho hầu hết các phần), vì vậy nếu bạn thực hiện các thao tác đồng bộ tốn kém, bạn sẽ chặn thực thi cho toàn bộ quá trình của mình. – Andbdrew

0

là cuộc gọi bạn cần xóa tệp. Để thay thế nó bằng các nội dung khác nhau, chỉ cần ghi đè lên nó với fs.writeFile.

+2

Từ tài liệu về nút cho fs.writeFile: Ghi dữ liệu vào một tệp không đồng bộ, thay thế tệp nếu nó đã tồn tại. Bước hủy liên kết của bạn là không cần thiết. – ChrisCM

+0

@ChrisCM Tôi chỉ trả lời cả hai phần của câu hỏi. –

Các vấn đề liên quan