迭代文件名并删除Erlang中的扩展名

迭代文件名并删除Erlang中的扩展名,erlang,Erlang,我是个二郎新手。我曾尝试对此进行研究,但由于我对这种语言不熟悉,并且对我的代码感到困惑,所以我将在这里发布 我希望遍历目录中的文件,并根据文件名(减去扩展名)为每个文件运行一个命令 例如,此(未测试的)批处理文件应遍历XML文件文件夹,将当前文件名存储在变量中(减去文件扩展名),并下载同名JPEG: for %%a in (*.xml) do ( set "current_filename=%%~na" wget -q -c -t 2 -0 "C:\Photos" "https:

我是个二郎新手。我曾尝试对此进行研究,但由于我对这种语言不熟悉,并且对我的代码感到困惑,所以我将在这里发布

我希望遍历目录中的文件,并根据文件名(减去扩展名)为每个文件运行一个命令

例如,此(未测试的)批处理文件应遍历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")

使用filelib:wildcard函数:

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

我正试图在我的模块中实现这一点,但我遇到了一个错误:“语法错误之前:文件名”您能否在我的脚本上下文中向我展示您的意思,以便我理解?谢谢我找到了解决方案,它将命令包装在一个函数中,如:gather_filenames()->filenames=filelib:wildcard(“*.xml”,“C:/xml”),filenames@grgoelyk函数中不需要该变量。这将完成:gather_filenames()->filelib:wildcard(“*.xml”,“C:/xml”)。我明白了。这简化了我的代码。但是,我也需要从列表中删除文件扩展名。我正试图在我的模块中实现这一点,但我遇到了一个错误:“前面的语法错误:文件名”。您能否在我的脚本上下文中向我说明您的意思,以便我能理解?谢谢我找到了解决方案,它将命令包装在一个函数中,如:gather_filenames()->filenames=filelib:wildcard(“*.xml”,“C:/xml”),filenames@grgoelyk函数中不需要该变量。这将完成:gather_filenames()->filelib:wildcard(“*.xml”,“C:/xml”)。我明白了。这简化了我的代码。但是,我还需要从列表中删除文件扩展名。
gather_filenames() ->
    [ filename:rootname(FN) || FN <- filelib:wildcard("*.xml", "C:/XML") ].