Skip to content

multi_download 无法设置下载文件本地存放目录 #36

@shenlanzifa

Description

@shenlanzifa

在 multi_download 中设置settings 的save_path字段不起作用,文件还是被存放到默认路径。经过查看源代码,发现 std::string multi_download::file_name() 函数有点小问题。下面是修改后的:
std::string multi_download::file_name() const
{
// 如果文件名为空, 则生成默认文件名.
if (m_file_name.empty())
{
// 构造默认文件名. 如果url中的文件名为空, 那么就默认为index.html, 否则
// 使用url中指定的文件名, 除非settings指定了保存文件路径及文件名.
m_file_name = fs::path(detail::utf8_ansi(m_final_url.path())).leaf().string();
if (m_file_name == "/" || m_file_name == "")
m_file_name = fs::path(m_final_url.query()).leaf().string();
if (m_file_name == "/" || m_file_name == "" || m_file_name == ".")
m_file_name = "index.html";
}

if (!m_settings.save_path.empty())
{
    if (fs::is_directory(m_settings.save_path))
    {
        fs::path p = m_settings.save_path / m_file_name;
        if (m_file_name != p.string())
        {
            m_file_name = p.string();
        }

    }
    else
    {
        m_file_name = m_settings.save_path.string();
    }
}

return m_file_name;

}
这样设置save_path就起作用了,修改后还没发现别的问题,希望作者审核下。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions