Path Klasa

Definicja

Wykonuje operacje na String wystąpieniach, które zawierają informacje o ścieżce pliku lub katalogu.Performs operations on String instances that contain file or directory path information. Te operacje są wykonywane w sposób Międzyplatformowy.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
Dziedziczenie
Path
Atrybuty

Przykłady

Poniższy przykład demonstruje niektóre główne elementy członkowskie klasy 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

Uwagi

Ścieżka to ciąg, który zawiera lokalizację pliku lub katalogu.A path is a string that provides the location of a file or directory. Ścieżka nie musi wskazywać lokalizacji na dysku; na przykład ścieżka może być mapowana na lokalizację w pamięci lub na urządzeniu.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. Dokładny Format ścieżki jest określany przez bieżącą platformę.The exact format of a path is determined by the current platform. Na przykład w niektórych systemach ścieżka może rozpoczynać się od litery dysku lub woluminu, podczas gdy ten element nie jest obecny w innych systemach.For example, on some systems, a path can start with a drive or volume letter, while this element is not present in other systems. W niektórych systemach ścieżki plików mogą zawierać rozszerzenia, które wskazują typ informacji przechowywanych w pliku.On some systems, file paths can contain extensions, which indicate the type of information stored in the file. Format rozszerzenia nazwy pliku zależy od platformy; na przykład niektóre systemy ograniczają rozszerzenia do trzech znaków, a inne nie.The format of a file name extension is platform-dependent; for example, some systems limit extensions to three characters, and others do not. Bieżąca platforma określa również zestaw znaków użytych do oddzielenia elementów ścieżki oraz zestaw znaków, które nie mogą być używane podczas określania ścieżek.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. Ze względu na te różnice pola klasy Path oraz dokładne zachowanie niektórych elementów członkowskich klasy Path są zależne od platformy.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.

Ścieżka może zawierać bezwzględne lub względne informacje o lokalizacji.A path can contain absolute or relative location information. Ścieżki bezwzględne w pełni określają lokalizację: plik lub katalog można jednoznacznie zidentyfikować, niezależnie od bieżącej lokalizacji.Absolute paths fully specify a location: the file or directory can be uniquely identified regardless of the current location. Ścieżki względne określają lokalizację częściową: bieżąca lokalizacja jest używana jako punkt początkowy podczas lokalizowania pliku określonego ze ścieżką względną.Relative paths specify a partial location: the current location is used as the starting point when locating a file specified with a relative path. Aby określić bieżący katalog, wywołaj Directory.GetCurrentDirectory.To determine the current directory, call Directory.GetCurrentDirectory.

Program .NET Core 1,1 i jego nowsze wersje oraz .NET Framework 4.6.2 i nowsze wersje obsługują również dostęp do obiektów systemu plików, które są nazwami urządzeń, takimi jak "\? \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:".

Aby uzyskać więcej informacji na temat formatów ścieżki plików w systemie Windows, zobacz formaty ścieżki plików w systemach Windows.For more information on file path formats on Windows, see File path formats on Windows systems.

Większość elementów członkowskich klasy Path nie współdziała z systemem plików i nie weryfikuje istnienia pliku określonego przez ciąg ścieżki.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 członkowie klasy, którzy modyfikują ciąg ścieżki, na przykład ChangeExtension, nie mają wpływu na nazwy plików w systemie plików.Path class members that modify a path string, such as ChangeExtension, have no effect on names of files in the file system. Członkowie Path mogą jednak sprawdzić zawartość określonego ciągu ścieżki i zgłosić wyjątek ArgumentException, jeśli ciąg zawiera znaki, które nie są prawidłowe w ciągu ścieżki, zgodnie z definicją w znakach zwracanych z metody 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. Na przykład na platformach klasycznych opartych na systemie Windows nieprawidłowe znaki ścieżki mogą zawierać cudzysłowy ("), mniejsze niż (<), większe niż (>),|potok (), Backspace (\b), null (\ 0) i znaki Unicode od 16 do 18 i 20 do 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.

Członkowie klasy Path umożliwiają szybkie i łatwe wykonywanie typowych operacji, takich jak określenie, czy rozszerzenie nazwy pliku jest częścią ścieżki, i połączenie dwóch ciągów w jedną nazwę ścieżki.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.

Wszystkie elementy członkowskie klasy Path są statyczne i dlatego mogą być wywoływane bez wystąpienia ścieżki.All members of the Path class are static and can therefore be called without having an instance of a path.

Uwaga

W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub występuje wyjątek.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Na przykład jeśli ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycięta w metodach klasy.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek.Therefore, the path is malformed and an exception is raised. Podobnie ścieżka lub kombinacja ścieżek nie mogą być w pełni kwalifikowane dwukrotnie.Similarly, a path or a combination of paths cannot be fully qualified twice. Na przykład "c:\Temp c:\Windows" wywołuje również wyjątek w większości przypadków.For example, "c:\temp c:\windows" also raises an exception in most cases. Upewnij się, że ścieżki są poprawnie sformułowane podczas korzystania z metod, które akceptują ciąg ścieżki.Ensure that your paths are well-formed when using methods that accept a path string.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu.In members that accept a path, the path can refer to a file or just a directory. Określona ścieżka może również odwoływać się do ścieżki względnej lub ścieżki Universal Naming Convention (UNC) dla serwera i nazwy udziału.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Na przykład wszystkie następujące są dopuszczalne ścieżki:For example, all the following are acceptable paths:

  • "c:\\MyDir\\MyFile.txt" in C#lub "c:\MyDir\MyFile.txt" w Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C#lub "c:\mydir" w Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C#lub "MyDir\MySubDir" w Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" w C#lub "\\MyServer\MyShare" w Visual Basic."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

Ponieważ wszystkie te operacje są wykonywane na ciągach, nie można sprawdzić, czy wyniki są prawidłowe we wszystkich scenariuszach.Because all these operations are performed on strings, it is impossible to verify that the results are valid in all scenarios. Na przykład Metoda GetExtension analizuje ciąg przekazywany do niego i zwraca rozszerzenie z tego ciągu.For example, the GetExtension method parses a string that you pass to it and returns the extension from that string. Nie oznacza to jednak, że plik z tym rozszerzeniem istnieje na dysku.However, this does not mean that a file with that extension exists on the disk.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Pola

AltDirectorySeparatorChar

Zapewnia alternatywny znak specyficzny dla platformy używany do oddzielania poziomów katalogów w ciągu ścieżki, który odzwierciedla hierarchiczną organizację systemu plików.Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.

DirectorySeparatorChar

Zawiera znak specyficzny dla platformy używany do oddzielania poziomów katalogów w ciągu ścieżki, który odzwierciedla hierarchiczną organizację systemu plików.Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization.

InvalidPathChars

Dostarcza tablicę znaków specyficznych dla platformy, których nie można określić w argumentach ciągu ścieżki przekazane do elementów członkowskich klasy Path.Provides a platform-specific array of characters that cannot be specified in path string arguments passed to members of the Path class.

PathSeparator

Znak separatora specyficzny dla platformy używany do oddzielania ciągów ścieżki w zmiennych środowiskowych.A platform-specific separator character used to separate path strings in environment variables.

VolumeSeparatorChar

Zawiera znak separatora woluminu specyficzny dla platformy.Provides a platform-specific volume separator character.

Metody

ChangeExtension(String, String)

Zmienia rozszerzenie ciągu ścieżki.Changes the extension of a path string.

Combine(String, String)

Łączy dwa ciągi w ścieżkę.Combines two strings into a path.

Combine(String, String, String)

Łączy trzy ciągi w ścieżkę.Combines three strings into a path.

Combine(String, String, String, String)

Łączy cztery ciągi w ścieżkę.Combines four strings into a path.

Combine(String[])

Łączy tablicę ciągów w ścieżkę.Combines an array of strings into a path.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Zwraca wartość wskazującą, czy ścieżka, określona jako zakres tylko do odczytu, zostaje zakończona w separatorze katalogu.Returns a value that indicates whether the path, specified as a read-only span, ends in a directory separator.

EndsInDirectorySeparator(String)

Zwraca wartość wskazującą, czy określona ścieżka zostanie zakończona w separatorze katalogu.Returns a value that indicates whether the specified path ends in a directory separator.

GetDirectoryName(ReadOnlySpan<Char>)

Zwraca informacje o katalogu dla określonej ścieżki reprezentowanej przez zakres znaków.Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

Zwraca informacje o katalogu dla podanego ciągu ścieżki.Returns the directory information for the specified path string.

GetExtension(ReadOnlySpan<Char>)

Zwraca rozszerzenie ścieżki pliku reprezentowanej przez zakres znaków tylko do odczytu.Returns the extension of a file path that is represented by a read-only character span.

GetExtension(String)

Zwraca rozszerzenie (łącznie z kropką ".") określonego ciągu ścieżki.Returns the extension (including the period ".") of the specified path string.

GetFileName(ReadOnlySpan<Char>)

Zwraca nazwę pliku i rozszerzenie ścieżki pliku reprezentowanej przez zakres znaków tylko do odczytu.Returns the file name and extension of a file path that is represented by a read-only character span.

GetFileName(String)

Zwraca nazwę pliku i rozszerzenie określonego ciągu ścieżki.Returns the file name and extension of the specified path string.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Zwraca nazwę pliku bez rozszerzenia ścieżki pliku reprezentowanego przez zakres znaków tylko do odczytu.Returns the file name without the extension of a file path that is represented by a read-only character span.

GetFileNameWithoutExtension(String)

Zwraca nazwę pliku określonego ciągu ścieżki bez rozszerzenia.Returns the file name of the specified path string without the extension.

GetFullPath(String)

Zwraca ścieżkę bezwzględną dla podanego ciągu ścieżki.Returns the absolute path for the specified path string.

GetFullPath(String, String)

Zwraca ścieżkę bezwzględną z w pełni kwalifikowanej ścieżki podstawowej i ścieżki względnej.Returns an absolute path from a fully qualified base path and a relative path.

GetInvalidFileNameChars()

Pobiera tablicę zawierającą znaki, które nie są dozwolone w nazwach plików.Gets an array containing the characters that are not allowed in file names.

GetInvalidPathChars()

Pobiera tablicę zawierającą znaki, które nie są dozwolone w nazwach ścieżek.Gets an array containing the characters that are not allowed in path names.

GetPathRoot(ReadOnlySpan<Char>)

Pobiera informacje z katalogu głównego ze ścieżki zawartej w określonym zakresie znaków.Gets the root directory information from the path contained in the specified character span.

GetPathRoot(String)

Pobiera informacje z katalogu głównego ze ścieżki zawartej w określonym ciągu.Gets the root directory information from the path contained in the specified string.

GetRandomFileName()

Zwraca losową nazwę folderu lub nazwę pliku.Returns a random folder name or file name.

GetRelativePath(String, String)

Zwraca ścieżkę względną z jednej ścieżki do innej.Returns a relative path from one path to another.

GetTempFileName()

Tworzy plik tymczasowy o unikatowych nazwach o zerowej liczbie bajtów na dysku i zwraca pełną ścieżkę do tego pliku.Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

GetTempPath()

Zwraca ścieżkę folderu tymczasowego bieżącego użytkownika.Returns the path of the current user's temporary folder.

HasExtension(ReadOnlySpan<Char>)

Określa, czy ścieżka reprezentowana przez określony zakres znaków zawiera rozszerzenie nazwy pliku.Determines whether the path represented by the specified character span includes a file name extension.

HasExtension(String)

Określa, czy ścieżka zawiera rozszerzenie nazwy pliku.Determines whether a path includes a file name extension.

IsPathFullyQualified(ReadOnlySpan<Char>)

Zwraca wartość wskazującą, czy ścieżka pliku reprezentowana przez określony zakres znaków jest ustalona dla określonego dysku lub ścieżki 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)

Zwraca wartość wskazującą, czy określona ścieżka pliku jest stała dla określonego dysku lub ścieżki UNC.Returns a value that indicates whether the specified file path is fixed to a specific drive or UNC path.

IsPathRooted(ReadOnlySpan<Char>)

Zwraca wartość wskazującą, czy określony zakres znaków reprezentujący ścieżkę pliku zawiera element główny.Returns a value that indicates whether the specified character span that represents a file path contains a root.

IsPathRooted(String)

Zwraca wartość wskazującą, czy określony ciąg ścieżki zawiera element główny.Returns a value indicating whether the specified path string contains a root.

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

Łączy dwa składniki ścieżki w jedną ścieżkę.Concatenates two path components into a single path.

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

Łączy trzy składniki ścieżki w jedną ścieżkę.Concatenates three path components into a single path.

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

Łączy cztery składniki ścieżki w jedną ścieżkę.Concatenates four path components into a single path.

Join(String, String)

Łączy dwie ścieżki w jedną ścieżkę.Concatenates two paths into a single path.

Join(String, String, String)

Łączy trzy ścieżki w jedną ścieżkę.Concatenates three paths into a single path.

Join(String, String, String, String)

Łączy cztery ścieżki w jedną ścieżkę.Concatenates four paths into a single path.

Join(String[])

Łączy tablicę ścieżek w jedną ścieżkę.Concatenates an array of paths into a single path.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Przycina jeden końcowy separator katalogów poza katalogiem głównym określonej ścieżki.Trims one trailing directory separator beyond the root of the specified path.

TrimEndingDirectorySeparator(String)

Przycina jeden końcowy separator katalogów poza katalogiem głównym określonej ścieżki.Trims one trailing directory separator beyond the root of the specified path.

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

Próbuje połączyć dwa składniki ścieżki z pojedynczym wstępnie przydzielonym zakresem znaków i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie.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)

Próbuje połączyć dwa składniki ścieżki z pojedynczym wstępnie przydzielonym zakresem znaków i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

Dotyczy

Zobacz też