ccyx
1
我是用了Local Image plus插件将图片移动到imgs/文件名/
的文件夹下面,结果有一个文件的图片显示错误。
经过排查之后发现,是文件名过长导致的,改变文件名之后就正常显示了。
另外这个问题可能并非Local Image plus的问题,因为在OBsidian中也无法预览该目录下的文件。
删除目录中的&符号对结果没有影响。
删除末尾tumor imaging and urinalysis后显示正常。
猜测OBsidian可能对文件名长度有限制,后来测试更长的文件夹名,发现图片直接无法复制进去了
但是win默认支持256位的路径名,而第一个目录中,还是能复制图片进去的,因此不确定是win的问题还是Obsidian的问题。有谁能解答一下吗?
测试目录为:F:\note\Obsidian\4-1 文献阅读\部分记录\文献单篇总结\imgs2\2024-Kaiji Wei,Xia Chu-A Multifunctional Peptide Nucleic Acid & Peptide Copolymer-Based Dual-Mode Biosensor with Macrophage-hitchhiking for enhanced tumor imaging and urinalysis
测试图片名:8236d48d664fa7399c70639571796aef_MD5.png
系统:win11 24H2专业版
OBsidian版本:V1.8.10
插件:
Probe
(Probe)
2
主要是操作系统的问题
我查到的资料是: Windows 的最大路径长度有两重限制, 文件名最大长度 255, 全路径最大长度 260, 见 最大路径长度限制 - Win32 apps 和 Windows长路径支持是什么意思啊?
感觉就是因为楼主这目录太长了,
可以找任何浏览器或 Ob 进控制台敲 "F:\note\Obsidian......".length
然后回车, 能快速查字符串长度, 想精确统计记得把 \
全都改成 /
, 此外我感觉前面还有个 “file:///” 也占了不少字符
楼主的示例里, 目录+图片名的长度已经没容错空间了,
建议还是缩短点吧,
理由之一是未来难免要来回挪动文件路径, 且在 Ob 里重命名笔记链接时, 看似只碰一个笔记实际可能会触动关联的一套文件 (尤其带各种插件时), 如果再考虑不同操作系统同步文件, 超长路径带来的不可控因素太多了
另一方面, 中文全角字符只算一个字 (跟英文一样), &符号是有效字符, 这俩我测试过了, 没啥问题
ccyx
3
确实,这个bug应该是操作系统的问题。
本来这个长度在win中应该是不允许的,但是win11做了兼容,导致能在文件管理器中创建这么长的目录,也能在系统中创建这么长的目录,但是对于win32的app来说,无法读取这么长的目录, 而且OBsidian也没有报错。
这种用文件名存储图片和其他文件的习惯是在用vscode写markdown的时候养成的,比较方便移动文件。后面应该会想想办法优化下文件名,不会搞这么长了。
1 个赞