Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Java 扩展File类,为用户透明地通过网络通道在文件系统上提供一致的方式_Java_File - Fatal编程技术网

Java 扩展File类,为用户透明地通过网络通道在文件系统上提供一致的方式

Java 扩展File类,为用户透明地通过网络通道在文件系统上提供一致的方式,java,file,Java,File,我正在实现一个基于Java的系统,它需要访问本地和网络文件系统。在本机情况下,使用Java File类是简单而直接的,我希望即使文件系统是通过网络连接的,也能让用户保持这种一致性 e、 g.File folder=新文件(“某个文件夹”);File[]files=文件夹.listFiles()如果实例“folder”是网络连接的,则folder.listFiles()将触发相关的网络事务以检索远程文件结构 问题包括,是否可以使用相同的名称扩展文件类?如果子类需要一个新的给定名称,例如NetedF

我正在实现一个基于Java的系统,它需要访问本地和网络文件系统。在本机情况下,使用Java File类是简单而直接的,我希望即使文件系统是通过网络连接的,也能让用户保持这种一致性

e、 g.
File folder=新文件(“某个文件夹”);File[]files=文件夹.listFiles()
如果实例“folder”是网络连接的,则
folder.listFiles()
将触发相关的网络事务以检索远程文件结构

问题包括,是否可以使用相同的名称扩展文件类?如果子类需要一个新的给定名称,例如
NetedFile
,如何在
File[]listFiles()
等方法中处理返回类型,而我不想逐个将元素从
File
包装到
NetedFile

请告知

谢谢和问候,
William Choi

好消息是,如果您使用NFS、SMB和其他协议在您的计算机上装载远程文件系统,那么远程FS上文件或目录的对象应该可以正常工作。不需要额外的编码

坏消息是,这不适用于使用FTP或HTTP访问的远程文件系统。此外,远程文件系统装载和访问必须在操作系统级别实现

编辑

如果您试图将常规HTTP服务器视为文件系统,那么您会遇到许多问题,首先是标准HTTP协议不区分文件或目录。它们都是“资源”

如果您谈论的是启用WebDAV的HTTP服务器,那么显然有一些驱动程序允许您将远程WebDAV服务器装载为文件系统;e、 g.在谷歌上搜索“webdav挂载windows”或“webdav挂载linux”


如果您必须在Java中完成所有这些工作(例如,如果专有的“通道”是Java类),我不知道您将如何做

实际上,我面临的是一个糟糕的问题,因为我们有自己的专有http通道类来操作.Thx Stephen。是的,都是纯java的。在我看来,我必须改变使File类没有扩展名的设计,并添加一个新的类,例如NetedFS,它具有将File作为参数的方法来执行相关操作。