Path.DirectorySeparatorChar Поле

Определение

Предоставляет символ, задаваемый платформой, для разделения уровней папок в строке пути, в которой отражена иерархическая организация файловой системы.

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

Значение поля

Примеры

В следующем примере отображаются Path значения полей в Системах Windows и Unix. Обратите внимание, что Windows поддерживает косую черту (которая возвращается полем AltDirectorySeparatorChar ) или обратную косую черту (возвращаемую полем DirectorySeparatorChar ) в качестве символов разделителя пути, в то время как системы unix поддерживают только косую черту.

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

Комментарии

AltDirectorySeparatorChar и DirectorySeparatorChar допустимы для разделения уровней каталога в строке пути.

При использовании .NET Core для разработки приложений, работающих на нескольких платформах:

  • Если вы предпочитаете жестко запрограммировать символ разделителя каталогов, следует использовать символ косой черты (/). Это единственный распознанный символ разделителя каталогов в системах Unix, как показано в выходных данных из примера, и является символом в AltDirectorySeparatorChar Windows.

  • Используйте объединение строк для динамического извлечения символа разделителя пути во время выполнения и включения его в пути файловой системы. Например, примененная к объекту директива

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

    Вы также можете получить значение из AltDirectorySeparatorChar свойства , так как оно одинаково в системах Windows и Unix.

  • AltDirectorySeparatorChar Получение свойства

Если приложение не является кроссплатформенным, можно использовать разделитель, соответствующий вашей системе.

Применяется к

См. также раздел