2

8.3 ショート フォーマットでパスを示すネットワーク ロケーションを用意します。UNIX で使用するには、これらを長い形式に変換する必要があります。

私が必要とするネットワークの場所なので、UNCパスで動作する必要があります。

何か案は?

4

2 に答える 2

3

ショートからロングへの変換の答えは、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());
    }
}
于 2012-05-23T20:20:59.423 に答える