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

时间:2018-09-05 10:40:26

标签: .net string vb.net

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

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

按钮的大小固定,因此我正在寻找一种将文本转换为椭圆形版本的方法。

我想我还记得我看到过一个函数,该函数会将如此长的路径转换为类似的东西

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

但是我不记得它是否是自定义解决方案,还是在.NET中有内置的方法来实现这一点。

我的意思不是说ShortPath函数会将字符串变成

"c:\users\myuser\deskto~"

谢谢。

1 个答案:

答案 0 :(得分: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);
}

请记住,这对构成路径的观点非常幼稚。您可能会发现需要更改它,并根据需要编写适当的测试。