Share via


DirectoryInfo.CreateSubdirectory メソッド

指定したパスに 1 つ以上のサブディレクトリを作成します。パスは、この DirectoryInfo クラスのインスタンスに対する相対パスで指定できます。

Public Function CreateSubdirectory( _
   ByVal path As String _) As DirectoryInfo
[C#]
public DirectoryInfo CreateSubdirectory(stringpath);
[C++]
public: DirectoryInfo* CreateSubdirectory(String* path);
[JScript]
public function CreateSubdirectory(
   path : String) : DirectoryInfo;

パラメータ

  • path
    指定するパス。異なるディスク ボリュームまたは UNC (Universal Naming Convention) 名は指定できません。

戻り値

path に指定された最後のディレクトリ。

例外

例外の種類 条件
ArgumentException path が有効なファイル パスを指定していないか、無効な DirectoryInfo 文字を含んでいます。
ArgumentNullException path が null 参照 (Visual Basic では Nothing) です。
DirectoryNotFoundException 割り当てられていないドライブであるなど、指定されたパスが無効です。
IOException サブディレクトリを作成できません。

または

path に指定された名前のファイルまたはディレクトリが既に存在しています。

PathTooLongException 指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームでは、パスは 248 文字未満、ファイル名は 260 文字未満にする必要があります。指定したパス、またはファイル名、またはその両方が長すぎます。パスは 248 文字未満、ファイル名は 260 文字未満にする必要があります。
SecurityException 呼び出し元に、必要なアクセス許可がありません。

解説

path の一部が無効でない限り、 path に指定したすべてのディレクトリが作成されます。 path パラメータでは、ファイル パスではなく、ディレクトリ パスを指定します。既存のサブディレクトリがある場合は、このメソッドは何も実行しません。

メモ   パス名の長さは 248 文字までに制限されています。

このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
ディレクトリをコピーする。 Directory
ディレクトリの名前を変更、またはディレクトリを移動する。 Directory.Move

DirectoryInfo.MoveTo

ディレクトリを削除する。 Directory.Delete

DirectoryInfo.Delete

ディレクトリを作成する。 CreateDirectory

Directory

ディレクトリ内のファイルを参照する。 Name
ディレクトリ内のサブディレクトリを参照する。 GetDirectories

GetDirectories

ディレクトリ内のすべてのサブディレクトリにあるすべてのファイルを参照する。 GetFileSystemInfos

使用例

サブディレクトリを作成する例を次に示します。このサンプルでは、作成されたディレクトリは、いったん作成された後に削除されます。このため、このサンプルをテストするには、コード内のディレクトリを削除する行をコメント化してください。

 
Imports System
Imports System.IO

Public Class CreateSubTest

    Public Shared Sub Main()
        ' Make a reference to a directory.
        Dim di As New DirectoryInfo("TempDir")

        ' Create the directory only if it does not already exist.
        If di.Exists = False Then
            di.Create()
        End If

        ' Create a subdirectory in the directory just created.
        Dim dis As DirectoryInfo = di.CreateSubdirectory("SubDir")

        ' Process that directory as required.
        ' ...

        ' Delete the subdirectory.
        dis.Delete(True)

        ' Delete the directory.
        di.Delete(True)
    End Sub 'Main
End Class 'CreateSubTest

[C#] 
using System;
using System.IO;

public class CreateSubTest 
{
    public static void Main() 
    {
        // Create a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (di.Exists == false)
            di.Create();

        // Create a subdirectory in the directory just created.
        DirectoryInfo dis = di.CreateSubdirectory("SubDir");

        // Process that directory as required.
        // ...

        // Delete the subdirectory.
        dis.Delete(true);

        // Delete the directory.
        di.Delete(true);
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;

int main() {
    // Create a reference to a directory.
    DirectoryInfo* di = new DirectoryInfo(S"TempDir");

    // Create the directory only if it does not already exist.
    if (di->Exists == false)
        di->Create();

    // Create a subdirectory in the directory just created.
    DirectoryInfo* dis = di->CreateSubdirectory(S"SubDir");

    // Process that directory as required.
    // ...

    // Delete the subdirectory.
    dis->Delete(true);

    // Delete the directory.
    di->Delete(true);
}

[JScript] 
import System;
import System.IO;

public class CreateSubTest {
    public static function Main() {

        // Make a reference to a directory.
        var di : DirectoryInfo = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (di.Exists == false)
            di.Create();

        // Create a subdirectory in the directory just created.
        var dis : DirectoryInfo = di.CreateSubdirectory("SubDir");

        // Process that directory as required.
        // ...

        // Delete the subdirectory.
        dis.Delete(true);

        // Delete the directory.
        di.Delete(true);
    }
}

CreateSubTest.Main();

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

.NET Framework セキュリティ:

参照

DirectoryInfo クラス | DirectoryInfo メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み