2008-09-11 39 views
32

Có cách nào để tạo ổ đĩa ảo trong "Máy tính của tôi" và thao tác với nó, giống như JungleDisk không?C#: Tạo một ổ đĩa ảo trong Máy tính

Nó có thể làm điều gì đó như:

override OnRead(object sender, Event e) { 
    ShowFilesFromAmazon(); 
} 

Có bất kỳ API: s cho việc này? Có thể viết vào một tệp XML hoặc một cơ sở dữ liệu, thay vì một ổ đĩa thực.


Các Dokan Library dường như là câu trả lời mà chủ yếu tương ứng với câu hỏi của tôi, mặc dù System.IO.IsolatedStorage có vẻ là chuẩn nhất và hầu hết Microsoft-môi trường thích nghi.

Trả lời

20

Bạn có thể sử dụng Dokan library để tạo ra một ổ đĩa ảo. Có một .Net wrapper cho interfacing với C#.

+1

Theo như tôi biết không có cách nào để sử dụng nó trong một dự án thương mại, nó là theo giấy phép LGPL. Tôi sẽ đề nghị sử dụng máy chủ WebDAV + tích hợp chức năng gắn ổ đĩa Windows/Mac OS X. Có lẽ đây là cách nhanh nhất để đạt được kết quả. –

+11

Tôi nghĩ bạn kết hợp mọi thứ: LGPL không tương thích với cách sử dụng thương mại. Bạn có thể liên kết với dll (tham khảo nó) và chỉ khi bạn thực hiện thay đổi cho dokan Dokan chính nó, bạn phải phát hành mã nguồn: nhưng nguồn của thư viện Dokan sửa đổi ONLY! ĐÂY KHÔNG PHẢI LÀ TRƯỜNG HỢP CHO MÃ ** GPL **, CHO GPL BẠN PHẢI PHÁT HÀNH NGUỒN CỦA ** ĐƠN XIN CỦA BẠN **. – jdehaan

+1

Dokan đã chết và lỗi thời mà không có hy vọng sửa lỗi. –

6

Có, sử dụng các lớp trong System.IO.IsolatedStorage

+2

Tôi không hiểu cách IsloatedStorage có thể thêm sự kiện 'OnRead' và làm' ShowFilesFromAmazon() '? Ông có thể cho tôi một ví dụ? Cảm ơn! –

2

Nội dung của Máy tính của tôi có thể bao gồm Tiện ích mở rộng không gian tên Shell. Các đối tượng COM này chạy bên trong tiến trình Explorer chính, cũng như nhiều phần mở rộng vỏ khác. Sử dụng C# cho các phần mở rộng như vậy là một ý tưởng tồi, vì phần mở rộng của bạn không thể kiểm soát phiên bản CLR Explorer.exe có thể sử dụng. Và Microsoft chỉ cho phép một CLR cho mỗi quá trình.

+0

Tôi nghĩ rằng điều này đã thay đổi với .net 4.0 – Peter

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