Кто-нибудь знает, как распаковать файлы, защищенные паролем, в erlang?

Есть 3 вопроса

  1. как разархивировать или открыть защищенный паролем zip-файл в erlang?
  2. после распаковки zip-файла сортировка всех файлов по расширению что-то вроде filelib:wildcard("*.?erl")?
  3. поместить все отсортированные файлы в разные файлы, т.е. файл: запись (все *.erl -> в файл erl) и файл: запись (все *.beam -> в файл луча)

Благодарность


person user1067665    schedule 18.12.2011    source источник


Ответы (1)


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

Что касается 2, вы можете сделать следующее:

 Filenames = ["foo.erl", "bar.txt", "baz.erl"],
 Sorted = lists:keysort(1, [{filename:extension(Name), Name} || Name <- Filenames])
 [Name || {_, Name} <- Sorted].

Что касается 3, если места нет, то прочитайте их все в память, соберите данные в iolist() и запишите их обратно в желаемый выходной файл. Если пространство является проблемой, вам нужно немного передавать данные и читать их кусками.

person I GIVE CRAP ANSWERS    schedule 18.12.2011
comment
какой скрипт вы имеете в виду? - person user1067665; 18.12.2011
comment
Обычно, когда я распаковываю zip-файл, я использую: {ok,Filenames}=zip:extract(Pathtothefile). А имена файлов — это список других файлов, таких как [rabbitmq-server-2.7.0/src/worker_pool.erl, rabbitmq-server-2.7.0/src/mirrored_supervisor_tests.erl, rabbitmq-server-2.7.0/src/rabbit_binding. эрл]. Я имею в виду, как я могу отсортировать их по разным файлам? - person user1067665; 19.12.2011