Path Třída

Definice

Provádí operace s String instancemi, které obsahují informace o cestě k souboru nebo adresáři. Tyto operace se provádějí napříč platformami.

public ref class Path abstract sealed
public ref class Path sealed
public static class Path
public sealed class Path
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Path = class
Public Class Path
Public NotInheritable Class Path
Dědičnost
Path
Atributy

Příklady

Následující příklad ukazuje některé hlavní členy Path třídy.

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

Poznámky

Cesta je řetězec, který poskytuje umístění souboru nebo adresáře. Cesta nemusí nutně odkazovat na umístění na disku; Například cesta se může mapovat na umístění v paměti nebo na zařízení. Přesný formát cesty určuje aktuální platforma. Například v některých systémech může cesta začínat písmenem jednotky nebo svazku, zatímco tento prvek není v jiných systémech. V některých systémech můžou cesty k souborům obsahovat přípony, které označují typ informací uložených v souboru. Formát přípony názvu souboru je závislý na platformě; Některé systémy například omezují rozšíření na tři znaky (například FAT16 běžně používané v menším flash úložišti a starších verzích ISO 9660 používaných na optickém médiu) a jiné ne. Aktuální platforma také určuje sadu znaků používaných k oddělení prvků cesty a sadu znaků, které nelze použít při zadávání cest. Z těchto rozdílů jsou pole Path třídy a přesné chování některých členů Path třídy závislé na platformě.

Cesta může obsahovat absolutní nebo relativní informace o poloze. Absolutní cesty plně určují umístění: soubor nebo adresář lze jednoznačně identifikovat bez ohledu na aktuální umístění. Relativní cesty určují částečné umístění: Aktuální umístění se použije jako výchozí bod při vyhledání souboru zadaného relativní cestou. Chcete-li určit aktuální adresář, zavolejte Directory.GetCurrentDirectory.

.NET Core 1.1 a novější verze a .NET Framework 4.6.2 a novější verze také podporují přístup k objektům systému souborů, které jsou názvy zařízení, například "\\?\ C:\".

Další informace o formátech cest k souborům ve Windows najdete v tématu Formáty cest k souborům v systémech Windows.

Většina členů Path třídy nepracuje se systémem souborů a neověřuje existenci souboru určeného řetězcem cesty. Path členové třídy, které upravují řetězec cesty, například ChangeExtension, nemají žádný vliv na názvy souborů v systému souborů.

Někteří Path členové ověří obsah zadaného řetězce cesty a vyvolá ArgumentException , pokud řetězec obsahuje znaky, které nejsou platné v řetězcích cest, jak je definováno v znaky vrácených z GetInvalidPathChars metody. Například na Windows desktopových platformách můžou neplatné znaky cesty obsahovat uvozovky ("), menší než<), greater than (> (), kanál (|), backspace (\b), null (\0) a znaky Unicode 16 až 18 a 20 až 25. Toto chování ověřování se liší mezi verzemi .NET:

  • Ve verzích .NET Framework a .NET Core starších než 2.1: Všichni Path členové, kteří používají cestu jako argument, vyvoláArgumentException, pokud zjistí neplatné znaky cesty.

  • V .NET Core 2.1 a novějších verzích: GetFullPath je jediným členem, který vyvolá ArgumentException , pokud řetězec obsahuje neplatné znaky cesty.

Členové Path třídy umožňují rychle a snadno provádět běžné operace, například určit, jestli je přípona názvu souboru součástí cesty, a kombinovat dva řetězce do jednoho názvu cesty.

Všichni členové Path třídy jsou statická, a proto je možné volat bez instance cesty.

Poznámka

U členů, kteří přijímají cestu jako vstupní řetězec, musí být tato cesta správně vytvořena nebo je vyvolána výjimka. Pokud je například cesta plně kvalifikovaná, ale začíná mezerou, cesta se neořízne v metodách třídy. Proto je cesta poškozena a vyvolá se výjimka. Podobně cesta nebo kombinace cest nemůže být plně kvalifikovaná dvakrát. Například "c:temp c:\\windows" vyvolá výjimku ve většině případů. Ujistěte se, že jsou cesty správně vytvořené při použití metod, které přijímají řetězec cesty.

V členech, kteří přijímají cestu, může cesta odkazovat na soubor nebo jenom adresář. Zadaná cesta může také odkazovat na relativní cestu nebo cestu UNC (Universal Naming Convention) pro název serveru a sdílené složky. Například všechny následující cesty jsou přijatelné:

  • "c:\\MyDirMyFile.txt" v jazyce C# nebo "c:\MyDir\\\MyFile.txt" v Visual Basic.

  • "c:\\MyDir" v C# nebo "c:\MyDir" v Visual Basic.

  • "MyDirMySubdir" v C# nebo MyDirMySubDir\\\ v Visual Basic.

  • "\\\\MyServerMyShare" v C# nebo MyServerMyShare\\\\\ v Visual Basic.

Vzhledem k tomu, že všechny tyto operace se provádějí u řetězců, není možné ověřit, zda jsou výsledky platné ve všech scénářích. GetExtension Například metoda parsuje řetězec, který do něj předáte, a vrátí rozšíření z daného řetězce. To ale neznamená, že na disku existuje soubor s touto příponou.

Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Pole

AltDirectorySeparatorChar

Poskytuje alternativní znak specifický pro platformu používaný k oddělení úrovní adresářů v řetězci cesty, který odráží hierarchickou organizaci systému souborů.

DirectorySeparatorChar

Poskytuje znak specifický pro platformu, který slouží k oddělení úrovní adresáře v řetězci cesty, který odráží hierarchickou organizaci systému souborů.

InvalidPathChars
Zastaralé.
Zastaralé.
Zastaralé.

Poskytuje pole znaků specifických pro platformu, které nelze zadat v argumentech řetězce cesty předané členům Path třídy.

PathSeparator

Znak oddělovače specifické pro platformu sloužící k oddělení řetězců cest v proměnných prostředí.

VolumeSeparatorChar

Poskytuje znak oddělovače svazků specifický pro platformu.

Metody

ChangeExtension(String, String)

Změní rozšíření řetězce cesty.

Combine(String, String)

Kombinuje dva řetězce do cesty.

Combine(String, String, String)

Kombinuje tři řetězce do cesty.

Combine(String, String, String, String)

Kombinuje čtyři řetězce do cesty.

Combine(String[])

Kombinuje pole řetězců do cesty.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Vrátí hodnotu, která určuje, jestli cesta zadaná jako rozsah jen pro čtení končí oddělovačem adresáře.

EndsInDirectorySeparator(String)

Vrátí hodnotu, která určuje, jestli zadaná cesta končí oddělovačem adresáře.

Exists(String)

Určuje, zda zadaný soubor nebo adresář existuje.

GetDirectoryName(ReadOnlySpan<Char>)

Vrátí informace o adresáři pro zadanou cestu reprezentovanou rozsahem znaků.

GetDirectoryName(String)

Vrátí informace o adresáři pro zadanou cestu.

GetExtension(ReadOnlySpan<Char>)

Vrátí příponu cesty k souboru, která je reprezentována rozsahem znaků jen pro čtení.

GetExtension(String)

Vrátí příponu (včetně tečky ".") zadaného řetězce cesty.

GetFileName(ReadOnlySpan<Char>)

Vrátí název souboru a příponu cesty k souboru, která je reprezentována rozsahem znaků jen pro čtení.

GetFileName(String)

Vrátí název souboru a příponu zadaného řetězce cesty.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Vrátí název souboru bez přípony cesty k souboru, která je reprezentována rozsahem znaků jen pro čtení.

GetFileNameWithoutExtension(String)

Vrátí název souboru zadaného řetězce cesty bez přípony.

GetFullPath(String)

Vrátí absolutní cestu pro zadaný řetězec cesty.

GetFullPath(String, String)

Vrátí absolutní cestu z relativní cesty a plně kvalifikovanou základní cestu.

GetInvalidFileNameChars()

Získá pole obsahující znaky, které nejsou povoleny v názvech souborů.

GetInvalidPathChars()

Získá pole obsahující znaky, které nejsou povoleny v názvech cest.

GetPathRoot(ReadOnlySpan<Char>)

Získá informace o kořenovém adresáři z cesty obsažené v zadaném rozsahu znaků.

GetPathRoot(String)

Získá informace o kořenovém adresáři z cesty obsažené v zadaném řetězci.

GetRandomFileName()

Vrátí náhodný název složky nebo název souboru.

GetRelativePath(String, String)

Vrátí relativní cestu z jedné cesty do druhé.

GetTempFileName()

Vytvoří jedinečný pojmenovaný dočasný soubor s nulovým bajtem na disku a vrátí úplnou cestu k danému souboru.

GetTempPath()

Vrátí cestu k dočasné složce aktuálního uživatele.

HasExtension(ReadOnlySpan<Char>)

Určuje, zda cesta reprezentovaná zadaným rozsahem znaků zahrnuje příponu názvu souboru.

HasExtension(String)

Určuje, zda cesta obsahuje příponu názvu souboru.

IsPathFullyQualified(ReadOnlySpan<Char>)

Vrátí hodnotu, která určuje, jestli je cesta k souboru reprezentovaná zadaným rozsahem znaků pevná na konkrétní jednotku nebo cestu UNC.

IsPathFullyQualified(String)

Vrátí hodnotu, která určuje, jestli je zadaná cesta k souboru pevná na konkrétní jednotku nebo cestu UNC.

IsPathRooted(ReadOnlySpan<Char>)

Vrátí hodnotu, která určuje, zda zadané rozsahy znaků, které představují cestu k souboru, obsahuje kořen.

IsPathRooted(String)

Vrátí hodnotu označující, zda zadaný řetězec cesty obsahuje kořen.

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

Zřetězí dvě komponenty cesty do jedné cesty.

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

Zřetězí tři komponenty cesty do jedné cesty.

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

Zřetězí čtyři komponenty cesty do jedné cesty.

Join(String, String)

Zřetězí dvě cesty do jedné cesty.

Join(String, String, String)

Zřetězí tři cesty do jedné cesty.

Join(String, String, String, String)

Zřetězí čtyři cesty do jedné cesty.

Join(String[])

Zřetězí pole cest do jedné cesty.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Oříznou jeden koncový oddělovač adresáře za kořenem zadané cesty.

TrimEndingDirectorySeparator(String)

Oříznou jeden koncový oddělovač adresáře za kořenem zadané cesty.

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

Pokusí se zřetězení tří komponent cesty do jednoho předem přiděleného rozsahu znaků a vrátí hodnotu, která označuje, zda operace byla úspěšná.

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

Pokusí se zřetězení dvou komponent cesty do jednoho předem přiděleného rozsahu znaků a vrátí hodnotu, která označuje, jestli operace byla úspěšná.

Platí pro

Viz také