Path Classe

Definição

Executa operações em instâncias de String que contêm informações de caminho de arquivo ou diretório. Essas operações são executadas de uma maneira em plataforma cruzada.

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
Herança
Path
Atributos

Exemplos

O exemplo a seguir demonstra alguns dos principais membros da Path classe.

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

Comentários

Um caminho é uma cadeia de caracteres que fornece o local de um arquivo ou diretório. Um caminho não aponta necessariamente para um local no disco; por exemplo, um caminho pode ser mapeado para um local na memória ou em um dispositivo. O formato exato de um caminho é determinado pela plataforma atual. Por exemplo, em alguns sistemas, um caminho pode começar com uma unidade ou uma letra de volume, enquanto esse elemento não está presente em outros sistemas. Em alguns sistemas, os caminhos de arquivo podem conter extensões, que indicam o tipo de informações armazenadas no arquivo. O formato de uma extensão de nome de arquivo é dependente da plataforma; por exemplo, alguns sistemas limitam extensões a três caracteres (como FAT16 comumente usado em armazenamento flash menor e versões mais antigas do ISO 9660 usadas em mídia óptica), e outros não. A plataforma atual também determina o conjunto de caracteres usado para separar os elementos de um caminho e o conjunto de caracteres que não podem ser usados ao especificar caminhos. Devido a essas diferenças, os campos da Path classe, bem como o comportamento exato de alguns membros da Path classe, dependem da plataforma.

Um caminho pode conter informações de localização absolutas ou relativas. Caminhos absolutos especificam totalmente um local: o arquivo ou diretório pode ser identificado exclusivamente independentemente do local atual. Caminhos relativos especificam um local parcial: o local atual é usado como o ponto de partida ao localizar um arquivo especificado com um caminho relativo. Para determinar o diretório atual, chame Directory.GetCurrentDirectory.

O .NET Core 1.1 e versões posteriores e .NET Framework 4.6.2 e versões posteriores também dão suporte ao acesso a objetos do sistema de arquivos que são nomes de dispositivo, como "\\?\ C:\".

Para obter mais informações sobre formatos de caminho de arquivo em Windows, consulte formatos de caminho de arquivo em sistemas de Windows.

A maioria dos membros da Path classe não interage com o sistema de arquivos e não verifica a existência do arquivo especificado por uma cadeia de caracteres de caminho. Path os membros da classe que modificam uma cadeia de caracteres de caminho, como ChangeExtension, não têm efeito sobre nomes de arquivos no sistema de arquivos.

Alguns Path membros validam o conteúdo de uma cadeia de caracteres de caminho especificada e lançam um ArgumentException se a cadeia de caracteres contiver caracteres que não são válidos em cadeias de caracteres de caminho, conforme definido nos caracteres retornados do GetInvalidPathChars método. Por exemplo, em plataformas de área de trabalho baseadas em Windows, caracteres de caminho inválidos podem incluir aspas ("), menor que (<), greater than (>), pipe (|), backspace (\b), nulo (\0) e caracteres Unicode de 16 a 18 e 20 a 25. Esse comportamento de validação varia entre as versões do .NET:

  • Em .NET Framework e versões do .NET Core com mais de 2.1: todos os Path membros que tomam um caminho como argumento geram um ArgumentException se detectarem caracteres de caminho inválidos.

  • No .NET Core 2.1 e versões posteriores: GetFullPath é o único membro que lança um ArgumentException se a cadeia de caracteres contiver caracteres de caminho inválidos.

Os membros da Path classe permitem executar operações comuns de forma rápida e fácil, como determinar se uma extensão de nome de arquivo faz parte de um caminho e combinar duas cadeias de caracteres em um nome de caminho.

Todos os membros da Path classe são estáticos e, portanto, podem ser chamados sem ter uma instância de um caminho.

Observação

Em membros que aceitam um caminho como uma cadeia de caracteres de entrada, esse caminho deve ser bem formado ou uma exceção é gerada. Por exemplo, se um caminho for totalmente qualificado, mas começar com um espaço, o caminho não será cortado em métodos da classe. Portanto, o caminho é malformado e uma exceção é gerada. Da mesma forma, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também gera uma exceção na maioria dos casos. Verifique se seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caracteres de caminho.

Em membros que aceitam um caminho, o caminho pode se referir a um arquivo ou apenas a um diretório. O caminho especificado também pode se referir a um caminho relativo ou a um caminho UNC (Convenção Universal de Nomenclatura) para um servidor e um nome de compartilhamento. Por exemplo, todos os seguintes são caminhos aceitáveis:

  • "c:\\MyDir\\MyFile.txt" em C#ou "c:\MyDir\MyFile.txt" no Visual Basic.

  • "c:\\MyDir" em C#ou "c:\MyDir" em Visual Basic.

  • "MyDirMySubdir\\" em C#ou "MyDirMySubDir\" em Visual Basic.

  • "\\\\MyServerMyShare\\" em C#ou "\\MyServerMyShare\" em Visual Basic.

Como todas essas operações são executadas em cadeias de caracteres, é impossível verificar se os resultados são válidos em todos os cenários. Por exemplo, o GetExtension método analisa uma cadeia de caracteres que você passa para ela e retorna a extensão dessa cadeia de caracteres. No entanto, isso não significa que exista um arquivo com essa extensão no disco.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Campos

AltDirectorySeparatorChar

Fornece um caractere alternativo específico da plataforma usado para separar os níveis de diretório em uma cadeia de caracteres de caminho que reflete uma organização do sistema de arquivos hierárquico.

DirectorySeparatorChar

Fornece um caractere específico da plataforma usado para separar os níveis de diretório em uma cadeia de caracteres de caminho que reflete uma organização do sistema de arquivos hierárquico.

InvalidPathChars
Obsoleto.
Obsoleto.
Obsoleto.

Fornece uma matriz de caracteres específica da plataforma que não pode ser especificada nos argumentos de cadeia de caracteres de caminho passados para membros da classe Path.

PathSeparator

Um caractere separador específico da plataforma usado para separar cadeias de caracteres de caminho em variáveis de ambiente.

VolumeSeparatorChar

Fornece um caractere separador de volume específico à plataforma.

Métodos

ChangeExtension(String, String)

Altera a extensão de uma cadeia de caracteres do caminho.

Combine(String, String)

Combina duas cadeias de caracteres em um caminho.

Combine(String, String, String)

Combina três cadeias de caracteres em um caminho.

Combine(String, String, String, String)

Combina quatro cadeias de caracteres em um caminho.

Combine(String[])

Combina uma matriz de cadeias de caracteres em um caminho.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Retorna um valor que indica se o caminho, especificado como um intervalo somente leitura, termina em um separador de diretório.

EndsInDirectorySeparator(String)

Retorna um valor que indica se o caminho especificado termina em um separador de diretório.

Exists(String)

Determina se o arquivo ou diretório especificado existe.

GetDirectoryName(ReadOnlySpan<Char>)

Retorna as informações de diretório para o caminho especificado representado por um intervalo de caracteres.

GetDirectoryName(String)

Retorna as informações de diretório para a caminho especificado.

GetExtension(ReadOnlySpan<Char>)

Retorna a extensão de um caminho de arquivo que é representado por um intervalo de caracteres somente leitura.

GetExtension(String)

Retorna a extensão (incluindo o ponto ".") da cadeia de caracteres de caminho especificada.

GetFileName(ReadOnlySpan<Char>)

Retorna o nome de arquivo e a extensão de um caminho de arquivo que é representado por um intervalo de caracteres somente leitura.

GetFileName(String)

Retorna o nome de arquivo e a extensão da cadeia de caracteres do caminho especificado.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Retorna o nome de arquivo sem a extensão de um caminho de arquivo que é representado por um intervalo de caracteres somente leitura.

GetFileNameWithoutExtension(String)

Retorna o nome de arquivo da cadeia de caracteres do caminho especificado sem a extensão.

GetFullPath(String)

Retorna o caminho absoluto para a cadeia de caracteres do caminho especificado.

GetFullPath(String, String)

Retorna um caminho absoluto de um caminho relativo e um caminho base totalmente qualificado.

GetInvalidFileNameChars()

Obtém uma matriz que contém os caracteres que não são permitidos em nomes de arquivo.

GetInvalidPathChars()

Obtém uma matriz que contém os caracteres que não são permitidos em nomes de caminho.

GetPathRoot(ReadOnlySpan<Char>)

Obtém as informações do diretório raiz do caminho contido no intervalo de caracteres especificado.

GetPathRoot(String)

Obtém as informações do diretório raiz do caminho contido na cadeia de caracteres especificada.

GetRandomFileName()

Retorna um nome de pasta ou nome de arquivo aleatório.

GetRelativePath(String, String)

Retorna um caminho relativo de um caminho para outro.

GetTempFileName()

Cria um arquivo temporário de zero byte nomeado exclusivamente no disco e retorna o caminho completo do arquivo.

GetTempPath()

Retorna o caminho da pasta temporária do usuário atual.

HasExtension(ReadOnlySpan<Char>)

Determina se o caminho representado pelo intervalo de caracteres especificado inclui uma extensão de nome de arquivo.

HasExtension(String)

Determina se um caminho inclui uma extensão de nome de arquivo.

IsPathFullyQualified(ReadOnlySpan<Char>)

Retorna um valor que indica se o caminho de arquivo representado pelo intervalo de caracteres especificado está fixo em uma unidade ou um caminho UNC específico.

IsPathFullyQualified(String)

Retorna um valor que indica se o caminho de arquivo especificado está fixo em uma unidade ou um caminho UNC específico.

IsPathRooted(ReadOnlySpan<Char>)

Retorna um valor que indica se o intervalo de caracteres especificado que representa um caminho de arquivo contém uma raiz.

IsPathRooted(String)

Retorna um valor que indica se a cadeia de caracteres do caminho especificado contém uma raiz.

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

Concatena componentes de dois caminhos em um único caminho.

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

Concatena componentes de três caminhos em um único caminho.

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

Concatena componentes de quatro caminhos em um único caminho.

Join(String, String)

Concatena dois caminhos em um único caminho.

Join(String, String, String)

Concatena três caminhos em um único caminho.

Join(String, String, String, String)

Concatena quatro caminhos em um único caminho.

Join(String[])

Concatena uma matriz de caminhos em um único caminho.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Corta um separador de diretório à direita além da raiz do caminho especificado.

TrimEndingDirectorySeparator(String)

Corta um separador de diretório à direita além da raiz do caminho especificado.

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

Tenta concatenar três componentes de caminho para um único intervalo de caracteres pré-alocado e retorna um valor que indica se a operação foi bem-sucedida.

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

Tenta concatenar componentes de dois caminhos em um único intervalo de caracteres pré-alocado e retorna um valor que indica se a operação foi bem-sucedida.

Aplica-se a

Confira também