Tôi muốn xây dựng một ứng dụng hệ thống tập tin dưới đất dựa trên FUSE, trong Java. Có một vài thư viện liên kết có sẵn trên web, Fuse-J, jnetfs, Fuseforjava, javafuse.Bất kỳ javafuse cơ hội nào cũng có thể hoạt động?
Không ai trong số họ có vẻ thực sự sống động như hôm nay, vì vậy tôi đã thử lần đầu tiên JavaFuse
.
Giao diện chúng ta phải thực hiện là ở đó: http://code.google.com/p/javafuse/source/browse/fs/JavaFS.java
và tôi muốn để tái tạo fuse helloworld example này.
Câu hỏi: Có cơ hội rằng đây:
static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi)
{
(void) offset;
(void) fi;
if(strcmp(path, "/") != 0)
return -ENOENT;
filler(buf, ".", NULL, 0);
filler(buf, "..", NULL, 0);
filler(buf, hello_path + 1, NULL, 0);
return 0;
}
có thể được thực hiện bởi chức năng java này:
public int readdir_pre(String path, long buf, long filler, int offset, Fuse_file_info info);
public int readdir_post(String path, long buf, long filler, int offset, Fuse_file_info info, int result);
Có lẽ tôi đã bỏ lỡ một cái gì đó, nhưng tôi không thể nhìn thấy làm thế nào để sử dụng filler
để cư trú trong nội dung thư mục ...
Có kỳ dị khác chỉ ví dụ helloworld này, như:
public int read_post(String path, String buf, int size, int offset, Fuse_file_info info, int result);
đó là nghĩa vụ phải điềnbuf
với size
byte dữ liệu, trong khi Java String
được cho là không thay đổi.
Tôi sẽ sugest sử dụng https://github.com/EtiennePerot/fuse-jna – user629926
có, có vẻ thú vị. Nhưng tôi đã chuyển sang [JNetFs] (https://code.launchpad.net/jnetfs) đã trả lời tất cả các yêu cầu của tôi cho đến nay! (mặc dù một số ràng buộc vẫn còn thiếu trong thư viện C, tôi phải tự ràng buộc chúng) – Kevin
+1 để có danh sách các triển khai FUSE-Java. –