PathTooLongException クラス


パス名または完全修飾ファイル名がシステム定義の最大長を超えている場合にスローされる例外。The exception that is thrown when a path or fully qualified file name is longer than the system-defined maximum length.

public ref class PathTooLongException : System::IO::IOException
public class PathTooLongException : System.IO.IOException
type PathTooLongException = class
    inherit IOException
Public Class PathTooLongException
Inherits IOException


コードにアクセス許可がFileIOPermissionAttribute.PathDiscoveryない場合、この例外のエラーメッセージには、完全パスではなく、ファイル名またはディレクトリ名のみが含まれている可能性があります。If your code does not have FileIOPermissionAttribute.PathDiscovery permission, the error message for this exception may contain only file or directory names instead of full paths.

より前.NET Framework 4.6.2.NET Framework 4.6.2のバージョンの .NET Framework で実行されるアプリでは、Windows オペレーティングシステムとの互換性を維持するために、完全なパスが260文字を超えないようにする必要があります。In apps that run under versions of the .NET Framework prior to the .NET Framework 4.6.2.NET Framework 4.6.2, full paths must not exceed 260 characters to maintain compatibility with Windows operating systems. 260文字を超えるパスは、すべて自動的にPathTooLongExceptionをスローします。Any path in excess of 260 characters automatically throws a PathTooLongException. この制限の詳細については、BCL チームのブログの「 .net での長いパスの入力」を参照してください。For more information about this restriction, see the entry Long Paths in .NET in the BCL Team blog.


この例外は、 Windows ストアアプリ用 .netまたはポータブルクラスライブラリには含まれていませんが、の一部のメンバーによってスローされます。This exception is not included in .NET for Windows Store apps or the Portable Class Library, but it is thrown by some members that are. そのような場合に例外をキャッチするにcatchは、 IOException代わりにを処理するステートメントを記述します。To catch the exception in that case, write a catch statement that handles an IOException instead.

以降で実行されて.NET Framework 4.6.2.NET Framework 4.6.2いるアプリでは、.NET Framework は 260 (またはMAX_PATH) 文字を超える長いパスをサポートしています。Starting with apps running under the .NET Framework 4.6.2.NET Framework 4.6.2, the .NET Framework supports long paths in excess of 260 (or MAX_PATH) characters. PathTooLongException例外がスローされる条件は、アプリが対象とする .NET Framework のバージョンによって異なります。The conditions under which a PathTooLongException exception are thrown depend on the version of the .NET Framework that an app targets:

以降の.NET Framework 4.6.2.NET Framework 4.6.2バージョンを対象とするアプリApps that target the .NET Framework 4.6.2.NET Framework 4.6.2 and later versions
長いパスは、既定でサポートされています。Long paths are supported by default. ランタイムは、次PathTooLongExceptionの条件下でをスローします。The runtime throws a PathTooLongException under the following conditions:

  • オペレーティング システムが COR_E_PATHTOOLONG またはそれと同等のものを返す。The operating system returns COR_E_PATHTOOLONG or its equivalent.

  • パスの長さが (32767 Int16.MaxValue ) 文字を超えています。The length of the path exceeds Int16.MaxValue (32,767) characters.

以前の.NET Framework 4.6.1.NET Framework 4.6.1バージョンを対象とするアプリApps that target the .NET Framework 4.6.1.NET Framework 4.6.1 and earlier versions
長いパスは既定で無効になっており、従来の動作が維持されます。Long paths are disabled by default, and the legacy behavior is maintained. パスが260文字PathTooLongExceptionを超えた場合、ランタイムはをスローします。The runtime throws a PathTooLongException whenever a path exceeds 260 characters.

これが望ましくない場合、以前の.NET Framework 4.6.1.NET Framework 4.6.1を対象とするがで実行されるアプリでは、アプリケーション構成ファイルの <runtime >要素に次の設定を含めることで、 .NET Framework 4.6.2.NET Framework 4.6.2長いパスのサポートを有効にすることができます。If this is undesirable, apps that target the .NET Framework 4.6.1.NET Framework 4.6.1 and earlier but run under the .NET Framework 4.6.2.NET Framework 4.6.2 can enable long path support by including the following setting in the <runtime> element of the application configuration file:

   <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false" />   

PathTooLongExceptionでは、 COR_E_PATHTOOLONG値が0x800700CE の HRESULT が使用されます。PathTooLongException uses the HRESULT COR_E_PATHTOOLONG, which has the value 0x800700CE.



HRESULT を COR_E_PATHTOOLONG に設定して、PathTooLongException クラスの新しいインスタンスを初期化します。Initializes a new instance of the PathTooLongException class with its HRESULT set to COR_E_PATHTOOLONG.

PathTooLongException(SerializationInfo, StreamingContext)

指定したシリアル化情報とコンテキスト情報を使用して、PathTooLongException クラスの新しいインスタンスを初期化します。Initializes a new instance of the PathTooLongException class with the specified serialization and context information.


メッセージ文字列を message に設定し、HRESULT を COR_E_PATHTOOLONG に設定して、PathTooLongException クラスの新しいインスタンスを初期化します。Initializes a new instance of the PathTooLongException class with its message string set to message and its HRESULT set to COR_E_PATHTOOLONG.

PathTooLongException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、PathTooLongException クラスの新しいインスタンスを初期化します。Initializes a new instance of the PathTooLongException class with a specified error message and a reference to the inner exception that is the cause of this exception.



例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)

現在の例外を説明するメッセージを取得します。Gets a message that describes the current exception.

(継承元 Exception)

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)



指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(継承元 Exception)

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(継承元 Exception)



例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)