【问题标题】:Java virtual file system applicationJava 虚拟文件系统应用程序
【发布时间】:2012-10-21 01:41:37
【问题描述】:

大家好,

我需要制作一个虚拟 Java 文件系统。这意味着对这个系统的所有修改都不会反映在真实的操作系统上——所以如果用户在程序中创建、移动、删除、复制文件和目录,它只是模仿文件系统及其结构,仅此而已。作为初始点,我们有文件系统的根,保存在程序内存中 - 虚拟“C:”。用户可以编写命令“create directory C:\text”或“delete file C:\test2\myfile.txt”。您可以随时打印创建的虚拟目录和文件的树。

最好的方法是什么?或者我在哪里可以找到真实文件系统的工作原理?

附:我想把目录组织成列表,把文件组织成简单的字符串。

提前致谢!

【问题讨论】:

  • a few ideas。对于命令,我会遵循POSIX 规范(mkdir、ls、chmod 等),这样用户就不会被未知命令所困扰(并且您可以跟踪需要做什么)。
  • 您是需要还是需要创建它?比如,作业?
  • 我会为底层文件使用字节数组而不是字符串。这将更接近于现有文件系统的工作方式。

标签: java filesystems directory virtual


【解决方案1】:

我会使用Commons Virtual File System 库。

【讨论】:

  • 我不认为 Commons VFS 提供了 OP 正在寻找的东西。它是一个抽象层,呈现各种现有存储系统的统一视图。它本身不提供内存存储系统。
  • OP 可以在可能的情况下使用内存数据库,或者为 VSF 实现他自己的 FS 实现。
  • 嗯,其实问题是如何“实现他自己的FS实现”,所以这似乎让OP离开了他开始的地方。
  • 是的,但是 VFS 会为此提供一个很好的框架(为您管理结构)。 ram 实现将是一个很好的开始。
【解决方案2】:

你可以有这种格式

public class Directory{

private List<File> files;


// geters and setters
// add more propertied to directory if required

}

 public class File{

private String name;
private int size;
private Date cretedDate;

// add more properties
  }

【讨论】:

  • 我不会使用不同的类。使用类节点并添加所有必要的成员。比如listSubNodes、parent、isFile、isDirectory等等。
【解决方案3】:

您可以使用的另一个选项是 Google's in memory file system implementation for java,它实现了 Java 的 FileSystem 抽象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多