[DllImport("shell32.dll", EntryPoint="PathYetAnotherMakeUniqueName", CharSet=CharSet.Unicode)]
internal static extern bool PathYetAnotherMakeUniqueName (
StringBuilder pszUniqueName,
string pszPath,
string pszShort,
string pszFileSpec);
For older systems such as Windows 2000 that do not have the entry point
PathYetAnotherMakeUniqueName name defined, the function is accessible
through its' ordinal value:
[DllImport("shell32.dll", EntryPoint="#75", CharSet=CharSet.Unicode)]
internal static extern bool PathYetAnotherMakeUniqueName (
StringBuilder pszUniqueName,
string pszPath,
string pszShort,
string pszFileSpec);
<DllImport("shell32.dll", EntryPoint:="PathYetAnotherMakeUniqueName", CharSet:=CharSet.Unicode)> _
Friend Shared Function PathYetAnotherMakeUniqueName( _
ByVal pszUniqueName As StringBuilder, _
ByVal pszPath As String, _
ByVal pszShort As String, _
ByVal pszFileSpec As String) As Boolean
End Function
const int MAX_PATH = 260;
StringBuilder buffer = new StringBuilder(MAX_PATH);
string folderSpec = @"d:\longfilename.log";
string fileSpec = "longfilename.log";
bool result = NativeMethods.PathYetAnotherMakeUniqueName(buffer, folderSpec, null, fileSpec);
Debug.WriteLine(string.Format("File: {0}", buffer.ToString()));
Do you know one? Please contribute it!