2

重複の可能性:
System.IO.PathTooLongException を回避するには?

私のアプリケーションのフォルダ構造では、非常に長い時間がかかります。このフォルダに保存されたファイルが必要です (スキーマ フォルダを変更するオプションはありません!)

【編集済】

using (var fileStream = File.Create(@"\\?\" + filePath, (int) file.Value.Length))
{
    var bytesInStream = new byte[file.Value.Length];
    file.Value.Read(bytesInStream, 0, bytesInStream.Length);
    fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}

問題は、フル パス「filePath」が 260 文字を超えていることです。

エラー:

System.IO.PathTooLongException 指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は 260 文字未満、ディレクトリ名は 248 文字未満である必要があります。

しかし、彼はこのフォルダに保存する必要があります!

フォルダ構造やファイル名を変更せずに、このファイルをこのフォルダに保存するにはどうすればよいですか?

4

1 に答える 1

2

長いパスの使用と関連する頭痛の種に関する素晴らしい記事。この道を進む前に、実際にそれらが必要であることを確認してください。相対パスが機能しない "...\a.txt"

http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx

別の方法として、Win32 API を使用して直接呼び出しを行うこともできます。

于 2012-05-11T16:58:21.030 に答える