Как бы я скопировал файловую иерархию из шаблона? - PullRequest
0 голосов
/ 24 августа 2018

Мне нужно восстановить определенную файловую иерархию в папке, после того как она будет удалена (да, не спрашивайте).

Пока я представляю его как простое приложение, которое запускается планировщиком задач Windows. Хотя есть несколько способов добиться этого эффекта, я хотел создать простой сингл exe .

Итак, я поместил свою структуру в свой проект и установил для всех файлов Build Action значение «Встроенный ресурс». Я могу сортировать доступ к ним через Assembly.GetExecutingAssembly().GetManifestResourceNames() и Assembly.GetExecutingAssembly().GetManifestResourceStream(name), однако я не вижу простого способа сохранить подобную иерархию.

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

Я уверен, что должен быть простой способ сказать: «Эй, вот как эти файлы должны быть расположены, повторите». Может быть, ресурсы - это неправильный механизм?

1 Ответ

0 голосов
/ 24 августа 2018

Ты прав, ты не можешь. Поскольку имена ресурсов являются идентификаторами, некоторые символы заменяются во время сборки, и вы также не можете хранить пустые папки. Однако вы можете создать Zip-файл из структуры, внедрив этот отдельный файл и извлекая его при необходимости - одним единственным вызовом, если хотите. Фреймворк имеет встроенную поддержку zip . Обратите внимание, однако, что к ZipFile нельзя получить доступ одновременно только последовательно, поскольку существует только одно внутреннее состояние.

...