8.3 ショート フォーマットでパスを示すネットワーク ロケーションを用意します。UNIX で使用するには、これらを長い形式に変換する必要があります。
私が必要とするネットワークの場所なので、UNCパスで動作する必要があります。
何か案は?
ショートからロングへの変換の答えは、Google で検索するだけです。これは、Windows Vista 以降の UNC パスに対してのみ機能します(および一部のサービス パックを使用する場合は XP)。
using System;
using System.Runtime.InteropServices;
using System.Text;
public class _Main
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetLongPathName(
string path,
StringBuilder longPath,
int longPathLength
);
public static void Main()
{
StringBuilder longPath = new StringBuilder(255);
GetLongPathName(@"\\?\UNC\server\d$\MYTEMP~1\RESOUR~1\sql.txt", longPath, longPath.Capacity);
Console.WriteLine(longPath.ToString());
}
}