【发布时间】:2013-01-13 22:11:00
【问题描述】:
如何在不触及文件名的情况下截断字符串(包含路径)(保留最后一个文件夹、文件名和驱动器号)?
嗨, 我正在寻找一种截断路径以适应指定宽度的方法。
我已经在 SO 上进行了搜索,发现了这个: Truncate a string nicely to fit within a given pixel width
但它在字符串末尾添加 ...。我想有一个类似的功能,但它需要保持开头和结尾..
例如,我有这个路径(字符串):
H:\Informatique\Personnalisation\Icones\__\Crystal GT PNG Pack\Applications\licq.png
它需要像这样适应 div 的宽度:
H:\Informatique\...PNG Pack\Applications\licq.png
另一个例子:
D:\A___VERY___________LONG________PATH____________\myfile.png
将缩短为:
D:\A___VERY___________LONG________PA...\myfile.png
最后一个例子:
D:\A___VERY___________LONG________PATH____________\and-a-sub-solder\myfile.png
将缩短为:
D:\A___VERY________...\and-a-sub-solder\myfile.png
限制:
- 需要驱动部分(H:)
- 需要提供文件名和扩展名 (licq.png)
- 如果有多个文件夹,最后一个文件夹不能被截断,除非所有内容都已被截断,这是唯一的方法 使字符串更短。
- 如果文件名太长,请在中间截断。
长文件名示例:
D:\my____file___________________________name____is___too____________long.png
将缩短为:
D:\my____file_________..._is___too____________long.png
我看到 windows 和苹果做得很好......但我找不到任何靠近它的脚本。
有类似脚本的链接,我可以尝试调整它吗? 或者任何想帮助我的人? :)
非常感谢
【问题讨论】:
-
截断长文件名的具体规则有哪些?
-
对于省略号何时出现在截断的目录/文件名的开头(示例 1)、结尾(示例 2 和 3)或中间(示例 4)是否有规则?跨度>
-
这只是逻辑,如果我们在末尾截断,用户看不到文件名,在开始时,用户看不到驱动器号。最后一个文件夹通常会告诉用户一些东西...... Program File 对他们中的大多数人来说并不意味着任何东西;) - 如果您想要更多示例,请询问!
标签: jquery string filepath truncate