urain39/saw-rpc

getTitleName的bug

Closed this issue · 1 comments

当将dir设置为/xxxx/(以文件夹分隔符结尾)时,我们获取的文件名就变成了''。这个问题应该是 Aria2 的造成的,它返回的数据里就有以连续的文件夹分隔符隔开的路径,如:F:/path/to//file

解决方法:我们只需要将源码中的三元表达式改写成无论如何都加上1,跳过分隔符就行了。

不过更保险的方法是手动解析路径。

function normalizePath(path) {
    const RE_DIRECTORY_SEPARATOR = /[/\\]/;

    const dirs = path.split(RE_DIRECTORY_SEPARATOR);

    let newDirs = [];
    for (const dir of dirs) {
        if (dir.length > 0)
            newDirs.push(dir);
    }

    return (RE_DIRECTORY_SEPARATOR.test(path.charAt(0)) ? '/' : '') + newDirs.join('/');
}