Итерация по именам файлов и удаление расширений в Erlang - PullRequest
0 голосов
/ 16 декабря 2018

Я новичок в Эрланге.Я попытался провести исследование по этому вопросу, но, поскольку я новичок в этом языке и запутался в своем коде, я публикую здесь.

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

Например, этот (непроверенный) пакетный файл должен перебирать папку с файлами XML, сохранять текущее имя файла в переменной (минусрасширение файла) и загрузите JPEG с таким же именем:

for %%a in (*.xml) do (

   set "current_filename=%%~na"

   wget -q -c -t 2 -0 "C:\Photos" "https://www.example.com/!current_filename!.jpg"

)

Вот мой текущий код модуля Erlang:

-module(erlangtest1).

-include_lib("kernel/include/file.hrl").

-compile(export_all).

ListXmlFiles() -> lists:foldl(fun(Filename) ->
        FileInfo = file:read_file_info("C:/XML/" ++ Filename),
    end, 0, Filenames).

До сих пор я застрял на кодировании функции для извлеченияимена файлов.После этого я попытаюсь запустить wget через os: cmd / 1.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018
gather_filenames() ->
    [ begin
        "lmx." ++ NF = lists:reverse(FN),
        lists:reverse(NF)
      end || FN <- filelib:wildcard("*.xml", "C:/XML") ].

Или проще, но я не знаю версию, когда filename:rootname/1 представил

gather_filenames() ->
    [ filename:rootname(FN) || FN <- filelib:wildcard("*.xml", "C:/XML") ].
0 голосов
/ 16 декабря 2018

Использование filelib: подстановочный знак функция:

Filenames = filelib:wildcard("*.xml", "C:/XML")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...