将完整路径显示为省略,较短的路径

问题描述 投票:0回答:1

我需要在按钮中显示路径。例如,此路径可能是

"c:\users\myuser\desktop\somefolder"

该按钮具有固定的大小,因此我正在寻找一种将文本转换为省略号的方法。

我想我会记得看到一个将这么长的路径转换成类似的东西的函数

"c:\users\...\somefolder"

但我不记得它是否是一个自定义解决方案,或者在.NET中是否有内置方法可以做到这一点。

我不是指将字符串转换为的ShortPath函数

"c:\users\myuser\deskto~"

谢谢。

.net string vb.net
1个回答
0
投票

一个简单的实现可能看起来像这样:

var pathString = @"c:\users\myuser\desktop\somefolder";
var maxStringLength = 25;

while(pathString.Length > maxStringLength)
{
    var splitPath = pathString.Split('\\').ToList();
    splitPath.Remove("...");
    splitPath[splitPath.Count - 2] = "...";
    pathString = string.Join("\\", splitPath);
}

请记住,这对于构成路径的内容有一个非常幼稚的看法。您可能会发现需要更改它,并根据您的需要编写适当的测试。

© www.soinside.com 2019 - 2024. All rights reserved.