2013-08-07 10 views
8

Với việc sử dụng Node-Webkit, tôi đang cố gắng tạo và ghi vào một tệp văn bản trong thư mục cục bộ do người dùng xác định từ bên trong tệp js công nhân web. Tôi đã thử sử dụng requestFileSystemSync(), .root.getFile(), .createWriter(), v.v. nhưng tôi không chắc nơi tệp này được lưu (có thể được ghi vào thư mục cục bộ được xác định hay không "sandboxed" vào vị trí thư mục đặc biệt không?).Nút-Webkit: Cách tạo tệp trong hệ thống tệp cục bộ?

Có ai có thể đưa ra lời khuyên về cách tốt nhất để tôi tạo tệp văn bản từ một nhân viên web đến một vị trí thư mục cục bộ tùy ý không? Tức là, trong hệ thống tệp cục bộ bên ngoài hệ thống tệp sandbox?

Cảm ơn.

+0

Tôi khá tò mò về loại ứng dụng bạn đang viết. Nếu bạn không nhớ tôi hỏi, công nhân web là gì và tại sao bạn cần viết ở khắp mọi nơi trên hệ thống tệp? –

Trả lời

16

Có vẻ như bạn đang cố gắng sử dụng API hệ thống tệp web. Đó có thể là một giải pháp hợp lý, nó sẽ cho phép bạn chạy ứng dụng của bạn như một trang web thông thường, tuy nhiên API hệ thống tệp web được sandboxed.

node-webkit cung cấp "Hỗ trợ đầy đủ cho API Node.js", điều tôi nghĩ có nghĩa là bạn có thể sử dụng the node.js file system API để viết bất kỳ đâu trên hệ thống tệp. Tuyệt đấy. Vì vậy, một cái gì đó như thế này sẽ hoạt động:

var fs = require('fs'); 
fs.writeFile("path/to/anywhere/test.txt", "Hi mom!", function(err) { 
    if(err) { 
     alert("error"); 
    } 
}); 

Ngoài ra, node-webkit web-workers do not support require I hear. Vì vậy, bạn sẽ cần phải làm công cụ hệ thống tập tin của bạn trong chủ đề chính của bạn.

+0

Cảm ơn bạn vì thông tin và mẹo đó. Sau rất nhiều Googling, tôi cũng đã kết luận rằng không thể ghi vào một tệp cục bộ từ một nhân viên web. Như vậy, tôi sẽ làm như bạn đã đề xuất và làm các tập tin thực tế bằng văn bản từ chủ đề chính của tôi. Cảm ơn một lần nữa! – cohoman