Здесь есть несколько синтаксических ошибок.
1) Чтобы вызвать функцию, определенную в модуле, используйте Module:Function(Arguments)
.
zip:unzip(Zipfile). % not zip.unzip()
2) Токены начинаются со строчной буквы и называются atom
s, которые являются лишь некоторыми литералами. Вы должны использовать переменные для первого аргумента unzip/2
.
Zipfile = "/path/to/your/zipfile.zip".
zip:unzip(Zipfile).
3) Для второго аргумента unzip/2
, давайте посмотрим, как понять документ, который вы публикуете:
unzip(Archive, Options) -> RetValue
Это сигнатура функции: два переменных аргумента и возвращаемое значение
Archive = file:name() | binary()
Первый аргумент должен иметь тип file:name()
или двоичный
Options = [Option]
Options
аргумент должен быть списком.
Option = {file_list, FileList} |
keep_old_files |
verbose |
memory |
{file_filter, FileFilter} |
{cwd, CWD}
Существует несколько форм списка, в том числе тот, который вам нужен: {cwd, CWD}
, который является кортежем, первый элемент которого - атом cwd
.
У нас есть все знания, чтобы правильно звонить zip:unzip/2
:
Zipfile = "/path/to/your/zipfile.zip".
MyCwd = "/path/to/working_dir/".
zip:unzip(ZipPath, [{cwd, MyCwd}]).