gpt4 book ai didi

java - 扩展 File 类,为用户通过网络 channel 透明地提供一致的文件系统方式

转载 作者:行者123 更新时间:2023-12-01 16:01:55 24 4
gpt4 key购买 nike

我正在实现一个基于 Java 的系统,该系统需要访问 native 文件系统和网络文件系统。在 native 情况下,使用 Java File 类既简单又直接,即使文件系统通过网络连接,我也希望为用户保持这种一致性。

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

问题包括,是否可以用相同的名称扩展 File 类?如果子类需要一个新的给定名称,例如NetedFile,当我不想包装 File 中的元素时,如何处理 File[] listFiles() 等方法中的返回类型code> 到 NetedFile 一对一。

请多多指教。

谢谢和问候,蔡威廉

最佳答案

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

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

编辑

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

如果您正在谈论启用 WebDAV 的 HTTP 服务器,显然有一些驱动程序允许您将远程 WebDAV 服务器安装为文件系统;例如在 Google 上搜索“webdav mount windows”或“webdav mount linux”。

如果您必须在 Java 中完成所有这些操作(例如,如果专有“ channel ”是一个 Java 类),我不知道您将如何去做。

关于java - 扩展 File 类,为用户通过网络 channel 透明地提供一致的文件系统方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com