ccf-2012 / torcp

A script to rename and copy downloaded files to a target in Emby-happy way:
162 stars 19 forks source link

NotADirectoryError: [WinError 267] 目录名称无效。 #4

Closed gitnoobbbb closed 2 years ago

gitnoobbbb commented 2 years ago

运行版本

v0.4

运行环境

Windows 11 专业版 22000.613 Python 3.10.2

错误代码

Search Movie: Devin Townsend Project Ocean Machine Live (2018) Found [536630]: Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv Traceback (most recent call last): File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 846, in main() File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 840, in main processOneDirItem(cpLocation, torFolderItem) File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 676, in processOneDirItem targetCopy(mediaSrc, destCatFolderName, newMovieName) File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 182, in targetCopy hdlinkCopy(fromLoc, toLocPath, toLocFile) File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 63, in hdlinkCopy ensureDir(destDir) File "E:\Tools\pt\reseedTorrent\torcp\torcp.py", line 32, in ensureDir os.makedirs(file_path) File "D:\develop\pythondevelop\Python310\lib\os.py", line 225, in makedirs mkdir(name, mode) NotADirectoryError: [WinError 267] 目录名称无效。: 'K:\Count_link\Movie\Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) [tmdbid=536630]'

报错后程序停止

怀疑可能是文件名问题无法创建文件夹 尝试手动新建Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) [tmdbid=536630]可创建成功

以上反馈

ccf-2012 commented 2 years ago

尝试手动新建Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) [tmdbid=536630]可创建成功

我在一台Windows 10上尝试手工mkdir 这样的一个目录,然而失败了,失败的原因是Windows不支持带有:的目录,它被理解为一个驱动器。

你所说的创建成功能确认吗?

gitnoobbbb commented 2 years ago

image 抱歉,没注意在手动创建时系统自动去除了不支持的字符 确实是win不支持英文:的问题(而该资源恰好没有刮到中文名

个人建议创建文件夹失败时程序可处理为跳过并记录而不是直接停止

当然这也仅仅是个例,批量硬链时我会将此类资源排除

非常感谢回复

ccf-2012 commented 2 years ago

新发布了一个v0.44版本,尝试解决Windows平台上建带有: 字符目录失败的问题。 要产生这样的issue,是原文件名正常而TMDb解析出来的名字带有 : 字符

请更新测试,感谢反馈。

gitnoobbbb commented 2 years ago

image

Search Movie: Devin Townsend Project Ocean Machine Live (2018) Found [536630]: Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv ln K:\Count\Devin.Townsend.Project.-.Ocean.Machine.Live.2018.1080p.BluRay.REPACK.DTS.x264-MaG.mkv K:\TEST\Movie\Devin Townsend Project Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) [tmdbid=536630]\Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) - 1080p_MaG.mkv Traceback (most recent call last): File "D:\develop\pythondevelop\Python310\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "D:\develop\pythondevelop\Python310\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "D:\develop\pythondevelop\Python310\Scripts\torcp.exe__main__.py", line 7, in File "D:\develop\pythondevelop\Python310\lib\site-packages\torcp\torcp.py", line 841, in main processOneDirItem(os.path.dirname(cpLocation), File "D:\develop\pythondevelop\Python310\lib\site-packages\torcp\torcp.py", line 688, in processOneDirItem targetCopy(mediaSrc, destCatFolderName, newMovieName) File "D:\develop\pythondevelop\Python310\lib\site-packages\torcp\torcp.py", line 183, in targetCopy hdlinkCopy(fromLoc, toLocPath, toLocFile) File "D:\develop\pythondevelop\Python310\lib\site-packages\torcp\torcp.py", line 76, in hdlinkCopy os.link(fromLoc, destFile) OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: 'K:\Count\Devin.Townsend.Project.-.Ocean.Machine.Live.2018.1080p.BluRay.REPACK.DTS.x264-MaG.mkv' -> 'K:\TEST\Movie\Devin Townsend Project Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) [tmdbid=536630]\Devin Townsend Project: Ocean Machine – Live at the Ancient Roman Theatre Plovdiv (2018) - 1080p_MaG.mkv'

如图,:被替换为 ,文件夹创建成功,但硬链失败,报上述错误

ccf-2012 commented 2 years ago

新发布了一个v0.45版本

gitnoobbbb commented 2 years ago

新发布了一个v0.45版本👍

问题解决 非常感谢(: