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

时间:2018-12-16 02:34:24

标签: erlang

我是Erlang的新手。我已经尝试对此进行研究,但是由于我是该语言的新手,并且对自己的代码感到困惑,因此请在此处发布。

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

例如,此(未调试的)批处理文件应循环访问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。

2 个答案:

答案 0 :(得分:2)

使用 filelib:wildcard 函数:

Filenames = filelib:wildcard("*.xml", "C:/XML")

答案 1 :(得分:1)

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") ].