Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dropbox及其";文件夹";喜欢设计_C#_Java_Ftp_Directory - Fatal编程技术网

C# Dropbox及其";文件夹";喜欢设计

C# Dropbox及其";文件夹";喜欢设计,c#,java,ftp,directory,C#,Java,Ftp,Directory,我想从程序员的角度(最好是在C#或Java中)来考虑,在操作系统中操纵一个文件夹来做你想做的事情(例如像FTP一样)有多难 自从几年前我听说dropbox以来,我一直想知道这其中涉及到什么?特别是在谈论dropbox时,他们没有做任何棘手的事情——只是使用Windows用户模式API提供的机制监视一个普通文件夹 不过,使用内核模式驱动程序可以完成更强大、更有趣的事情 您可以做的第一件事是创建一个虚拟磁盘并将其映射到文件夹。这样,您的代码(内核模式或在我们产品的帮助下的用户模式)将能够处理来自此

我想从程序员的角度(最好是在C#或Java中)来考虑,在操作系统中操纵一个文件夹来做你想做的事情(例如像FTP一样)有多难


自从几年前我听说dropbox以来,我一直想知道这其中涉及到什么?

特别是在谈论dropbox时,他们没有做任何棘手的事情——只是使用Windows用户模式API提供的机制监视一个普通文件夹

不过,使用内核模式驱动程序可以完成更强大、更有趣的事情

您可以做的第一件事是创建一个虚拟磁盘并将其映射到文件夹。这样,您的代码(内核模式或在我们产品的帮助下的用户模式)将能够处理来自此文件夹中文件的所有操作系统请求。该文件夹在磁盘上不存在,但将是虚拟的。您可以动态地从远程服务器拾取数据,将数据写入远程服务器等。特别是,您可以将远程SFTP服务器映射到文件夹(使用FTP时,事情会稍微复杂一些,因为FTP不支持部分上载)。一些云提供商正是按照我所描述的做的——他们提供一个虚拟磁盘或一个虚拟文件夹,这是他们的云服务的“大门”,当你从这样的虚拟文件夹或磁盘读写数据时,数据从/到云服务器

接下来,在文件系统过滤器驱动程序的帮助下,您可以拥有一个真正的文件夹,但可以动态地提供文件内容。这就是一些文件夹加密机的工作方式(它们在将文件数据写入真实磁盘时加密文件数据,如果没有此加密机,您将从该文件夹中的文件中读取加密的“垃圾邮件”)


现在,使用文件系统过滤器驱动程序,您可以控制谁以及如何访问文件夹,也就是说,您可以对文件夹内容的访问进行细粒度的控制(将其与加密结合起来,您就可以获得一种方便的数据保护机制)

您可以看看JavaNIO特性