2013-03-16 3 views
0

Я пытаюсь создать что-то вроде изо жесткого диска компьютера в java, но без данных в файлах. Как дерево файлов, но iso. Это происходит на клиенте A. Целью этого является передача этого дерева файлов ISO через GAE другому клиенту (скажем, клиенту B), который должен иметь возможность монтировать iso на своем компьютере с помощью проводника Windows.Создание «образа» диска с нулевыми файлами

Выше было то, чего я хочу достичь - я знаю, что это очень специфично, извините за это. Тем не менее, все, что я хочу знать, - это создание ISO (или другого монтируемого образа жесткого диска), который не содержит данных в файлах.

Нет данных в файлах = файлы все еще существуют (я должен иметь возможность видеть имена файлов), но они пусты. Вы знаете. Откройте их с помощью блокнота, и все, что вы получите, находится в файле. Или пространство. Без разницы. Дело в том, чтобы сделать iso небольшим по размеру, чтобы я мог перейти на клиента B, а не переносить весь жесткий диск. После этого клиент B может выбрать файл, который он хочет извлечь из другого компьютера, но это совсем другая история.

Вопрос:

Как создать что-то вроде ISO на жесткий диск компьютера в Java, но без каких-либо данных в файлах?

Не стесняйтесь рекомендовать решение, имеющее одинаковую функциональность, но использует другой подход.

Update:

Фаршированные подход ISO. Создал объект с большим количеством деревьев файлов. Свяжитесь со мной как-нибудь, если вы хотите сделать то же самое.

+0

Данные отсутствуют в файлах. Но сколько файлов данных не будет? [Связанный вопрос] (http://stackoverflow.com/questions/9621227/create-an-empty-cd-rom-image-and-inject-extract-files-into-from-it-using-java) с соответствующим ответ. –

+0

ooh ничего себе, ответ. лол. Немного путайте вопрос. Идея заключалась в том, чтобы ** все ** файлы на жестком диске в изображении - иначе вещь была бы бесполезной. – SuperMrBlob

+0

* «Спасибо, что прочитали!» * Спасибо за добавление конкретного вопроса. Подождите .. в чем ваш вопрос? –

ответ

0

Просто скопировать всю структуру файла с пустыми файлами:

// 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 (после запуска вышеуказанного кода).

+0

Большое спасибо за это: D. Теперь мне нужно выяснить, как создать ISO определенной папки, хотя, надеюсь, это не должно быть слишком сложно (https://github.com/stephenc/java-iso-tools или JIIC). Я бы поднял, но у меня не хватило репутации – SuperMrBlob

Смежные вопросы