Path.DirectorySeparatorChar Pole

Definicja

Udostępnia znak specyficzny dla platformy używany do oddzielania poziomów katalogu w ciągu ścieżki, który odzwierciedla hierarchiczną organizację systemu plików.

public: static initonly char DirectorySeparatorChar;
public static readonly char DirectorySeparatorChar;
 staticval mutable DirectorySeparatorChar : char
Public Shared ReadOnly DirectorySeparatorChar As Char 

Wartość pola

Przykłady

Poniższy przykład przedstawia wartości pól Path w systemach Windows i unix. Należy pamiętać, że Windows obsługuje ukośnik (zwracany przez pole AltDirectorySeparatorChar) lub ukośnik odwrotny (zwracany przez pole DirectorySeparatorChar) jako znaki separatora ścieżki, podczas gdy systemy oparte na systemie Unix obsługują tylko ukośnik do przodu.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        Console.WriteLine($"Path.DirectorySeparatorChar: '{Path.DirectorySeparatorChar}'");
        Console.WriteLine($"Path.AltDirectorySeparatorChar: '{Path.AltDirectorySeparatorChar}'");
        Console.WriteLine($"Path.PathSeparator: '{Path.PathSeparator}'");
        Console.WriteLine($"Path.VolumeSeparatorChar: '{Path.VolumeSeparatorChar}'");
        var invalidChars = Path.GetInvalidPathChars();
        Console.WriteLine($"Path.GetInvalidPathChars:");
        for (int ctr = 0; ctr < invalidChars.Length; ctr++) 
        {
            Console.Write($"  U+{Convert.ToUInt16(invalidChars[ctr]):X4} ");
            if ((ctr + 1) % 10 == 0) Console.WriteLine();
        }
        Console.WriteLine();
    }
}
// The example displays the following output when run on a Windows system:
//    Path.DirectorySeparatorChar: '\'
//    Path.AltDirectorySeparatorChar: '/'
//    Path.PathSeparator: ';'
//    Path.VolumeSeparatorChar: ':'
//    Path.GetInvalidPathChars:
//      U+007C)   U+0000)   U+0001)   U+0002)   U+0003)   U+0004)   U+0005)   U+0006)   U+0007)   U+0008)
//      U+0009)   U+000A)   U+000B)   U+000C)   U+000D)   U+000E)   U+000F)   U+0010)   U+0011)   U+0012)
//      U+0013)   U+0014)   U+0015)   U+0016)   U+0017)   U+0018)   U+0019)   U+001A)   U+001B)   U+001C)
//      U+001D)   U+001E)   U+001F)
//
// The example displays the following output when run on a Linux system:
//    Path.DirectorySeparatorChar: '/'
//    Path.AltDirectorySeparatorChar: '/'
//    Path.PathSeparator: ':'
//    Path.VolumeSeparatorChar: '/'
//    Path.GetInvalidPathChars:
//      U+0000
Imports System.IO

Module Program
    Sub Main()
       Console.WriteLine($"Path.DirectorySeparatorChar: '{Path.DirectorySeparatorChar}'")
        Console.WriteLine($"Path.AltDirectorySeparatorChar: '{Path.AltDirectorySeparatorChar}'")
        Console.WriteLine($"Path.PathSeparator: '{Path.PathSeparator}'")
        Console.WriteLine($"Path.VolumeSeparatorChar: '{Path.VolumeSeparatorChar}'")
        Dim invalidChars = Path.GetInvalidPathChars()
        Console.WriteLine($"Path.GetInvalidPathChars:")
        For ctr As Integer = 0 To invalidChars.Length - 1 
            Console.Write($"  U+{Convert.ToUInt16(invalidChars(ctr)):X4} ")
            if (ctr + 1) Mod 10 = 0 Then Console.WriteLine()
        Next
        Console.WriteLine()
        Console.WriteLine("Hello World!")
    End Sub
End Module
' The example displays the following output when run on a Windows system:
'    Path.DirectorySeparatorChar: '\'
'    Path.AltDirectorySeparatorChar: '/'
'    Path.PathSeparator: ';'
'    Path.VolumeSeparatorChar: ':'
'    Path.GetInvalidPathChars:
'      U+007C)   U+0000)   U+0001)   U+0002)   U+0003)   U+0004)   U+0005)   U+0006)   U+0007)   U+0008)
'      U+0009)   U+000A)   U+000B)   U+000C)   U+000D)   U+000E)   U+000F)   U+0010)   U+0011)   U+0012)
'      U+0013)   U+0014)   U+0015)   U+0016)   U+0017)   U+0018)   U+0019)   U+001A)   U+001B)   U+001C)
'      U+001D)   U+001E)   U+001F)
'
' The example displays the following output when run on a Linux system:
'    Path.DirectorySeparatorChar: '/'
'    Path.AltDirectorySeparatorChar: '/'
'    Path.PathSeparator: ':'
'    Path.VolumeSeparatorChar: '/'
'    Path.GetInvalidPathChars:
'      U+0000

Uwagi

AltDirectorySeparatorChar i DirectorySeparatorChar są prawidłowe w przypadku oddzielania poziomów katalogów w ciągu ścieżki.

W przypadku używania .NET Core do tworzenia aplikacji uruchamianych na wielu platformach:

  • Jeśli wolisz kodować znak separatora katalogu, należy użyć ukośnika () ukośnika (/). Jest to jedyny rozpoznany znak separatora katalogów w systemach Unix, jak pokazuje dane wyjściowe z przykładu i jest AltDirectorySeparatorChar w Windows.

  • Łączenie ciągów umożliwia dynamiczne pobieranie znaku separatora ścieżki w czasie wykonywania i dołączanie go do ścieżek systemu plików. Na przykład

    separator = Path.DirectorySeparatorChar;
    path = $"{separator}users{separator}user1{separator}";
    
    separator = Path.DirectorySeparatorChar
    path = $"{separator}users{separator}user1{separator}"
    

    Można również pobrać wartość z właściwości AltDirectorySeparatorChar, ponieważ jest taka sama zarówno w systemach Windows, jak i Unix.

  • AltDirectorySeparatorChar Pobieranie właściwości

Jeśli aplikacja nie jest międzyplatformowa, możesz użyć separatora odpowiedniego dla systemu.

Dotyczy

Zobacz też