12

非常に長いパスを持つ DirectoryInfo、FileInfo を操作しようとしています。

  • \\?\c:\long パスを使用してみます (fileInfo と DirectoryInfo で不正な文字を取得しました)
  • file://c:/long パスを使用してみます (サポートされていない uri を取得しました)

~ をパスなどで使用できますか?

この投稿を読みましたが、API を呼び出す別の方法を使用したいと思います。それは他の解決策ですか?

使用する Microsoft の記事があります \\? ファイル パスリンク テキスト内

問題は、非常に長いパス、DirectoryInfo、および 256 文字よりも長いパスの FileInfo をどのように処理できるかです。

4

5 に答える 5

13

The Library is available again on this location.

This is a .NET Library written against .NET Framework 2.0 and can be used to access very long folder and files from a .NET application.

Since the .NET Framework does not support long filenames :-( I had to write a library that calls the WIN32 API and wraps those functions like System.IO. While it is not a complete replica of the System.IO it does have most objects and functions available.

Delimon.Win32.IO replaces basic file functions of System.IO with long path names support for characters up to 32,767 Characters So bye bye MAX_PATH problem

Did you ever run into this problem?

System.IO.PathTooLongExceptionwas unhandled.

Message:

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

于 2012-03-19T20:30:51.860 に答える
10

.NET ブログ投稿 シリーズのロングパスを見ると、制限に達しないようにディレクトリを再構築する以外は、現時点ではP/Invokeを介してWin32APIにアクセスすることが唯一の解決策のようです。

于 2009-09-08T13:34:43.577 に答える
6

Delimon.Win32.I O ライブラリ (V4.0)も利用できます。これは .NET Framework 4.0 に対して記述されており、x86 および x64 システムのいずれでも使用できます。

于 2013-02-16T05:12:18.480 に答える
5

過去にこの問題を解決した方法は、Delimon.Win32.IO という Delimon のライブラリを使用することでした。彼のサイトhttp://www.delimon.beは現在ダウンしているようです。しかし、私は過去にプロジェクトでそれを使用したことがあり、チャンピオンのように機能しました. 今夜遅くに追跡するか、Google 経由で有効なリンクを探してみます。乾杯。この問題について議論している別のリンクがあります。

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5

于 2009-09-08T14:51:56.103 に答える