【问题标题】:Creating an 'image' of a disk with null files使用空文件创建磁盘的“映像”
【发布时间】:2013-03-16 04:01:38
【问题描述】:

我正在尝试在 java 中创建类似于计算机硬盘驱动器的 iso,但文件中没有数据。就像一个文件树,但是一个 iso。这发生在客户端 A 上。 这样做的目的是通过 GAE 将此 ISO 文件树传输到另一个客户端(假设是客户端 B),该客户端应该能够使用 Windows 资源管理器将 ISO 挂载到他的计算机上。

以上是我想要实现的 - 我知道它非常具体,对此感到抱歉。但是,我只想知道如何创建一个不包含文件中数据的 ISO(或其他可安装的硬盘映像)。

文件中没有数据 = 文件仍然存在(我必须能够看到文件的名称),但它们是空的。你知道。用记事本打开它们,你得到的只是文件中的“”。或者一个空间。任何。关键是使iso的大小变小,这样我就可以传输到客户端B,而不是传输整个硬盘驱动器。在此客户端 B 可以选择他想从另一台计算机获取的文件之后,那是另一回事了。

问题:

如何在 Java 中创建类似于计算机硬盘驱动器的 ISO,但文件中没有数据?

请随意推荐具有相同功能但采用不同方法的解决方案。

更新:

填充了 ISO 方法。创建了一个包含大量文件树的对象。如果您也想这样做,请以某种方式与我联系。

【问题讨论】:

  • 文件中没有数据。但是有多少没有数据文件呢? Related Question 有相关答案。
  • 哇哦,回复了。哈哈。有点被这个问题弄糊涂了。我们的想法是让 所有 文件在图像中的硬盘驱动器上 - 否则这东西将毫无用处。
  • “感谢您的通读!” 感谢您添加具体问题。等等..你的问题是什么?
  • 我在最后添加了它以进行澄清。对不起,如果我不清楚哈哈

标签: java image file tree iso


【解决方案1】:

只是用空文件复制整个文件结构:

// you may want to actually handle the IOException rather than just throwing it
public static void main(String[] args) throws IOException
{
  makeFileStructure(new File("someDirectory"), "someDestinationDirectory");
}

static void makeFileStructure(File src, String dest) throws IOException
{
  for (File f: src.listFiles())
  {
     String newPath = dest + File.separatorChar + f.getName();
     if (f.isDirectory())
     {
        if (!new File(newPath).mkdirs())
           // you may want to handle this better
           throw new IOException("Directory could not be created!");
        makeFileStructure(f, newPath);
     }
     else
        new File(newPath).createNewFile();
  }
}

只要确保"someDestinationDirectory" 不是"someDirectory" 的子目录,否则事情显然不会很顺利。

很确定您需要一个外部库来创建 ISO 映像(如果您想创建它)。试试Googling it。但是使用外部应用程序和a batch file(在运行上述代码之后)可能会更容易。

【讨论】:

  • 非常感谢您:D。现在我需要弄清楚如何创建特定文件夹的 ISO,尽管希望这不会太难(github.com/stephenc/java-iso-tools 或 JIIC)。我会投票,但没有足够的代表大声笑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2023-03-09
  • 2020-01-14
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
相关资源
最近更新 更多