遍历文件名并删除 Erlang 中的扩展名

Iterate through filenames and remove extensions in Erlang

我是 Erlang 新手。我已经尝试对此进行研究,但由于我是这种语言的新手并且对我的代码感到困惑,所以我在这里 posting。

我想遍历目录中的文件,并且对于每个文件,运行一个基于文件名(减去其扩展名)的命令。

例如,这个(未经测试的)批处理文件应该遍历 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).

到目前为止,我一直在编写一个检索文件名的函数。完成此操作后,我将尝试通过 os:cmd/1.

运行 wget

使用filelib:wildcard函数:

Filenames = filelib:wildcard("*.xml", "C:/XML")
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") ].