[DllImport("shlwapi.dll", CharSet=CharSet.Auto)]
static extern bool PathCompactPathEx([Out] StringBuilder pszOut, string szPath, int cchMax, int dwFlags);
<DllImport("shlwapi.dll", CharSet:=CharSet.Auto)> _
Shared Function PathCompactPathEx(ByVal pszOut As StringBuilder, _
ByVal szPath As String, _
ByVal cchMax As Integer, _
ByVal dwFlags As Integer) As Boolean
End Function
None.
If you have an HDC, take a look at PathCompactPath
Please add some!
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace CompactPathCmd
{
/// <summary>
/// Test code for PathCompactPathEx
/// </summary>
class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
string longPath = "c:\\a\\very\\very\\long\\path\\that\\needs\\to\\be\\shortened\\by\\calling\\the\\PathCompactpathEx";
int length = 40;
string result = CompactPath(longPath, length);
Console.WriteLine(" 1 2 3 4 5 6 7");
Console.WriteLine("1234567890123456789012345678901234567890123456789012345678901234567890123456789");
Console.WriteLine(result);
// displays : "c:\a\very\very\long...\PathCompactpathEx"
}
[DllImport("shlwapi.dll", CharSet=CharSet.Auto)]
static extern bool PathCompactPathEx([Out] StringBuilder pszOut, string szPath, int cchMax, int dwFlags);
public static string CompactPath(string longPathName, int wantedLength)
{
StringBuilder sb = new StringBuilder(wantedLength + 1);
PathCompactPathEx(sb, longPathName, wantedLength + 1, 0);
return sb.ToString();
}
}
}
Do you know one? Please contribute it!