Path Класс

Определение

Выполняет операции для экземпляров класса String, содержащих сведения о пути к файлу или каталогу.Performs operations on String instances that contain file or directory path information. Эти операции выполняются межплатформенным способом.These operations are performed in a cross-platform manner.

public ref class Path abstract sealed
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
Public Class Path
Наследование
Path
Атрибуты

Примеры

В следующем примере показаны некоторые из основных элементов класса Path.The following example demonstrates some of the main members of the Path class.

using namespace System;
using namespace System::IO;
int main()
{
   String^ path1 = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp\\MyTest";
   String^ path3 = "temp";
   if ( Path::HasExtension( path1 ) )
   {
      Console::WriteLine( "{0} has an extension.", path1 );
   }

   if (  !Path::HasExtension( path2 ) )
   {
      Console::WriteLine( "{0} has no extension.", path2 );
   }

   if (  !Path::IsPathRooted( path3 ) )
   {
      Console::WriteLine( "The string {0} contains no root information.", path3 );
   }

   Console::WriteLine( "The full path of {0} is {1}.", path3, Path::GetFullPath( path3 ) );
   Console::WriteLine( "{0} is the location for temporary files.", Path::GetTempPath() );
   Console::WriteLine( "{0} is a file available for use.", Path::GetTempFileName() );
   Console::WriteLine( "\r\nThe set of invalid characters in a path is:" );
   Console::WriteLine( "(Note that the wildcard characters '*' and '?' are not invalid.):" );
   Collections::IEnumerator^ myEnum = Path::InvalidPathChars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c =  *safe_cast<Char^>(myEnum->Current);
      Console::WriteLine( c );
   }
}

using System;
using System.IO;

class Test 
{
    
    public static void Main() 
    {
        string path1 = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp\MyTest";
        string path3 = @"temp";

        if (Path.HasExtension(path1)) 
        {
            Console.WriteLine("{0} has an extension.", path1);
        }

        if (!Path.HasExtension(path2)) 
        {
            Console.WriteLine("{0} has no extension.", path2);
        }

        if (!Path.IsPathRooted(path3)) 
        {
            Console.WriteLine("The string {0} contains no root information.", path3);
        }

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());

        /* This code produces output similar to the following:
         * c:\temp\MyTest.txt has an extension.
         * c:\temp\MyTest has no extension.
         * The string temp contains no root information.
         * The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
         */
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp\MyTest"
        Dim path3 As String = "temp"

        If Path.HasExtension(path1) Then
            Console.WriteLine("{0} has an extension.", path1)
        End If

        If Path.HasExtension(path2) = False Then
            Console.WriteLine("{0} has no extension.", path2)
        End If

        If Path.IsPathRooted(path3) = False Then
            Console.WriteLine("The string {0} contains no root information.", path3)
        End If

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3))
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath())
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName())

        ' This code produces output similar to the following:
        ' c:\temp\MyTest.txt has an extension.
        ' c:\temp\MyTest has no extension.
        ' The string temp contains no root information.
        ' The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.

    End Sub
End Class

Комментарии

Путь — это строка, которая предоставляет расположение файла или каталога.A path is a string that provides the location of a file or directory. Путь не обязательно указывает на расположение на диске; Например, путь может сопоставляться с расположением в памяти или на устройстве.A path does not necessarily point to a location on disk; for example, a path might map to a location in memory or on a device. Точный формат пути определяется текущей платформой.The exact format of a path is determined by the current platform. Например, в некоторых системах путь может начинаться с буквы диска или тома, а этот элемент отсутствует в других системах.For example, on some systems, a path can start with a drive or volume letter, while this element is not present in other systems. В некоторых системах пути к файлам могут содержать расширения, которые указывают тип данных, хранящихся в файле.On some systems, file paths can contain extensions, which indicate the type of information stored in the file. Формат расширения имени файла зависит от платформы; Например, некоторые системы ограничивают расширения тремя символами, а другие — нет.The format of a file name extension is platform-dependent; for example, some systems limit extensions to three characters, and others do not. Текущая платформа также определяет набор символов, используемых для разделения элементов пути, и набор символов, которые не могут быть использованы при указании путей.The current platform also determines the set of characters used to separate the elements of a path, and the set of characters that cannot be used when specifying paths. Из-за этих различий поля класса Path, а также точное поведение некоторых членов класса Path являются зависимыми от платформы.Because of these differences, the fields of the Path class as well as the exact behavior of some members of the Path class are platform-dependent.

Путь может содержать абсолютные или относительные сведения о расположении.A path can contain absolute or relative location information. Абсолютные пути полностью указывают расположение: файл или каталог могут быть однозначно идентифицированы независимо от текущего расположения.Absolute paths fully specify a location: the file or directory can be uniquely identified regardless of the current location. Относительные пути указывают на неполное расположение: текущее расположение используется в качестве отправной точки при поиске файла, указанного относительного пути.Relative paths specify a partial location: the current location is used as the starting point when locating a file specified with a relative path. Чтобы определить текущий каталог, вызовите Directory.GetCurrentDirectory.To determine the current directory, call Directory.GetCurrentDirectory.

.NET Core 1,1 и более поздние версии и .NET Framework 4.6.2 и более поздних версий также поддерживают доступ к объектам файловой системы, которые являются именами устройств, например "\? \c:"..NET Core 1.1 and later versions and .NET Framework 4.6.2 and later versions also support access to file system objects that are device names, such as "\?\C:".

Дополнительные сведения о форматах путей к файлам в Windows см. в разделе форматы путей к файлам в системах Windows.For more information on file path formats on Windows, see File path formats on Windows systems.

Большинство членов класса Path не взаимодействуют с файловой системой и не проверяют существование файла, указанного в строке пути.Most members of the Path class do not interact with the file system and do not verify the existence of the file specified by a path string. Path члены класса, которые изменяют строку пути, например ChangeExtension, не влияют на имена файлов в файловой системе.Path class members that modify a path string, such as ChangeExtension, have no effect on names of files in the file system. Однако Path члены выполняют проверку содержимого указанной строки пути и вызывают исключение ArgumentException, если строка содержит недопустимые символы в строках пути, как определено в символах, возвращаемых методом GetInvalidPathChars.Path members do, however, validate the contents of a specified path string, and throw an ArgumentException exception if the string contains characters that are not valid in path strings, as defined in the characters returned from the GetInvalidPathChars method. Например, на настольных платформах Windows недопустимые символы пути могут содержать кавычки ("), меньше (<), больше чем (>), pipe|(), Backspace (\b), null (\ 0) и символы Юникода от 16 до 18 и от 20 до 25.For example, on Windows-based desktop platforms, invalid path characters might include quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (\0), and Unicode characters 16 through 18 and 20 through 25.

Члены класса Path позволяют быстро и легко выполнять стандартные операции, такие как определение того, является ли расширение имени файла частью пути, и объединение двух строк в одно имя пути.The members of the Path class enable you to quickly and easily perform common operations such as determining whether a file name extension is part of a path, and combining two strings into one path name.

Все члены класса Path являются статическими и поэтому могут быть вызваны без наличия экземпляра пути.All members of the Path class are static and can therefore be called without having an instance of a path.

Примечание

В членах, принимающих путь в качестве входной строки, этот путь должен иметь правильный формат или возникнет исключение.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Например, если путь является полным, но начинается с пробела, путь не усекается в методах класса.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Поэтому путь имеет неправильный формат и возникает исключение.Therefore, the path is malformed and an exception is raised. Аналогично, путь или сочетание путей не могут быть полными и дважды.Similarly, a path or a combination of paths cannot be fully qualified twice. Например, "c:\temp c:\Windows" также вызывает исключение в большинстве случаев.For example, "c:\temp c:\windows" also raises an exception in most cases. При использовании методов, принимающих строку пути, убедитесь, что пути имеют правильный формат.Ensure that your paths are well-formed when using methods that accept a path string.

В членах, принимающих путь, путь может ссылаться на файл или только на каталог.In members that accept a path, the path can refer to a file or just a directory. Указанный путь может также ссылаться на относительный путь или путь в формате UNC для имени сервера и общего ресурса.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Например, все следующие допустимые пути:For example, all the following are acceptable paths:

  • "c:\\Мидир\\Мифиле.ткст" in C#или "к:\мидир\мифиле.ткст" в Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\Мидир" in C#или "к:\мидир" в Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • "MyDir\\Мисубдир" in C#или "мидир\мисубдир" в Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\Мисервер\\Мишаре" in C#или "\\MyServer\MyShare" в Visual Basic."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

Так как все эти операции выполняются на строках, невозможно проверить, являются ли результаты допустимыми во всех сценариях.Because all these operations are performed on strings, it is impossible to verify that the results are valid in all scenarios. Например, метод GetExtension анализирует строку, которую вы передали в нее, и возвращает расширение из этой строки.For example, the GetExtension method parses a string that you pass to it and returns the extension from that string. Однако это не означает, что на диске существует файл с таким расширением.However, this does not mean that a file with that extension exists on the disk.

Список общих задач ввода-вывода см. в разделе Общие задачи ввода-вывода.For a list of common I/O tasks, see Common I/O Tasks.

Поля

AltDirectorySeparatorChar

Предоставляет дополнительный символ, задаваемый платформой, для разделения уровней каталогов в строке пути, в которой отражена иерархическая организация файловой системы.Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.

DirectorySeparatorChar

Предоставляет символ, задаваемый платформой, для разделения уровней папок в строке пути, в которой отражена иерархическая организация файловой системы.Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization.

InvalidPathChars

Предоставляет массив символов, задаваемых платформой, которые не могут быть указаны в аргументах строки пути, передаваемых в элементы класса Path.Provides a platform-specific array of characters that cannot be specified in path string arguments passed to members of the Path class.

PathSeparator

Разделитель, задаваемый платформой, который используется в переменных среды для разделения строк пути.A platform-specific separator character used to separate path strings in environment variables.

VolumeSeparatorChar

Предоставляет разделитель томов, задаваемый платформой.Provides a platform-specific volume separator character.

Методы

ChangeExtension(String, String)

Изменяет расширение строки пути.Changes the extension of a path string.

Combine(String, String)

Объединяет две строки в путь.Combines two strings into a path.

Combine(String, String, String)

Объединяет три строки в путь.Combines three strings into a path.

Combine(String, String, String, String)

Объединяет четыре строки в путь.Combines four strings into a path.

Combine(String[])

Объединяет массив строк в путь.Combines an array of strings into a path.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Возвращает значение, указывающее, заканчивается ли путь, заданный в качестве диапазона, доступного только для чтения, в разделителе каталогов.Returns a value that indicates whether the path, specified as a read-only span, ends in a directory separator.

EndsInDirectorySeparator(String)

Возвращает значение, указывающее, заканчивается ли заданный путь в разделителе каталогов.Returns a value that indicates whether the specified path ends in a directory separator.

GetDirectoryName(ReadOnlySpan<Char>)

Возвращает сведения о каталоге для указанного пути, представленного диапазоном символов.Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

Возвращает для указанной строки пути сведения о каталоге.Returns the directory information for the specified path string.

GetExtension(ReadOnlySpan<Char>)

Возвращает расширение из пути к файлу, представленного диапазоном символов только для чтения.Returns the extension of a file path that is represented by a read-only character span.

GetExtension(String)

Возвращает расширение указанной строки пути (включая точку ".").Returns the extension (including the period ".") of the specified path string.

GetFileName(ReadOnlySpan<Char>)

Возвращает имя и расширение файла из пути к файлу, представленного диапазоном символов только для чтения.Returns the file name and extension of a file path that is represented by a read-only character span.

GetFileName(String)

Возвращает имя файла и расширение указанной строки пути.Returns the file name and extension of the specified path string.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Возвращает имя файла без расширения из пути к файлу, представленного диапазоном символов только для чтения.Returns the file name without the extension of a file path that is represented by a read-only character span.

GetFileNameWithoutExtension(String)

Возвращает имя файла указанной строки пути без расширения.Returns the file name of the specified path string without the extension.

GetFullPath(String)

Возвращает для указанной строки пути абсолютный путь.Returns the absolute path for the specified path string.

GetFullPath(String, String)

Возвращает абсолютный путь из базового полного пути и относительного пути.Returns an absolute path from a fully qualified base path and a relative path.

GetInvalidFileNameChars()

Возвращает массив, содержащий символы, которые не разрешены в именах файлов.Gets an array containing the characters that are not allowed in file names.

GetInvalidPathChars()

Возвращает массив, содержащий символы, которые не разрешены в именах путей.Gets an array containing the characters that are not allowed in path names.

GetPathRoot(ReadOnlySpan<Char>)

Получает сведения о корневом каталоге из пути, содержащегося в указанном диапазоне символов.Gets the root directory information from the path contained in the specified character span.

GetPathRoot(String)

Получает сведения о корневом каталоге из пути, содержащегося в указанной строке.Gets the root directory information from the path contained in the specified string.

GetRandomFileName()

Возвращает произвольное имя каталога или файла.Returns a random folder name or file name.

GetRelativePath(String, String)

Возвращает относительный путь от одного пути к другому.Returns a relative path from one path to another.

GetTempFileName()

Создает на диске временный пустой файл с уникальным именем и возвращает полный путь этого файла.Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

GetTempPath()

Возвращает путь к временной папке текущего пользователя.Returns the path of the current user's temporary folder.

HasExtension(ReadOnlySpan<Char>)

Определяет, включает ли путь, представленный указанным диапазоном символов, расширение имени файла.Determines whether the path represented by the specified character span includes a file name extension.

HasExtension(String)

Определяет, включает ли путь расширение имени файла.Determines whether a path includes a file name extension.

IsPathFullyQualified(ReadOnlySpan<Char>)

Возвращает значение, которое показывает, является ли путь к файлу, представленный указанным диапазоном символов, фиксированным для определенного диска или UNC-пути.Returns a value that indicates whether the file path represented by the specified character span is fixed to a specific drive or UNC path.

IsPathFullyQualified(String)

Возвращает значение, которое показывает, является ли указанный путь к файлу фиксированным для определенного диска или UNC-пути.Returns a value that indicates whether the specified file path is fixed to a specific drive or UNC path.

IsPathRooted(ReadOnlySpan<Char>)

Возвращает значение, которое показывает, содержит ли указанный диапазон символов, являющийся путем к файлу, корневую папку.Returns a value that indicates whether the specified character span that represents a file path contains a root.

IsPathRooted(String)

Возвращает значение, показывающее, содержит ли указанная строка пути корневую папку.Returns a value indicating whether the specified path string contains a root.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Сцепляет два компонента пути в один путь.Concatenates two path components into a single path.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Сцепляет три компонента пути в один путь.Concatenates three path components into a single path.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Сцепляет четыре компонента пути в один путь.Concatenates four path components into a single path.

Join(String, String)

Сцепляет два пути в один путь.Concatenates two paths into a single path.

Join(String, String, String)

Сцепляет три пути в один путь.Concatenates three paths into a single path.

Join(String, String, String, String)

Сцепляет четыре пути в один путь.Concatenates four paths into a single path.

Join(String[])

Сцепляет массив путей в один путь.Concatenates an array of paths into a single path.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Обрезает один конечный разделитель каталогов за пределами корня указанного пути.Trims one trailing directory separator beyond the root of the specified path.

TrimEndingDirectorySeparator(String)

Обрезает один конечный разделитель каталогов за пределами корня указанного пути.Trims one trailing directory separator beyond the root of the specified path.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Пытается сцепить два компонента пути в один предварительно выделенный диапазон символов и возвращает значение, показывающее, успешно ли выполнена эта операция.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Пытается сцепить два компонента пути в один предварительно выделенный диапазон символов и возвращает значение, показывающее, успешно ли выполнена эта операция.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

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

Дополнительно