Path Classe

Definição

Realiza operações em String instâncias que contêm informação de caminho de ficheiros ou diretórios. Estas operações são realizadas de forma multiplataforma.

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 seguinte demonstra alguns dos principais membros da Path turma.

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

Observações

Um caminho é uma cadeia que fornece a localização de um ficheiro ou diretório. Um caminho não aponta necessariamente para uma localização no disco; Por exemplo, um caminho pode mapear para uma localização na memória ou num dispositivo. O formato exato de um caminho é determinado pela plataforma atual. Por exemplo, em alguns sistemas, um caminho pode começar com uma letra de drive ou volume, enquanto este elemento não está presente noutros sistemas. Em alguns sistemas, os caminhos de ficheiro podem conter extensões, que indicam o tipo de informação armazenada no ficheiro. O formato de uma extensão de nome de ficheiro depende da plataforma; por exemplo, alguns sistemas limitam as extensões a três caracteres (como o FAT16, comumente usado em armazenamento flash mais pequeno, e versões mais antigas da ISO 9660 usadas em suportes óticos), e outros não. A plataforma atual também determina o conjunto de caracteres usados para separar os elementos de um caminho e o conjunto de caracteres que não podem ser usados ao especificar caminhos. Devido a estas 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ção de localização absoluta ou relativa. Caminhos absolutos especificam completamente uma localização: o ficheiro ou diretório pode ser identificado de forma única independentemente da localização atual. Caminhos relativos especificam uma localização parcial: a localização atual é usada como ponto de partida ao localizar um ficheiro especificado com um caminho relativo. Para determinar o diretório atual, ligue Directory.GetCurrentDirectorypara .

Este tipo também suporta o acesso a objetos do sistema de ficheiros que são nomes de dispositivos, como "\\?\C:\". O suporte a nomes de dispositivos foi adicionado no .NET Framework 4.6.2.

Para mais informações sobre formatos de caminho de ficheiro no Windows, veja formatos de caminho de ficheiro em sistemas Windows.

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

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

  • No .NET Framework: Todos os membros Path que tomam um caminho como argumento lançam um ArgumentException se detetarem caracteres de caminho inválidos.

  • Sobre .NET: GetFullPath é o único membro que lança um ArgumentException se a cadeia contiver caracteres path inválidos.

Os membros da Path classe permitem-lhe realizar rápida e facilmente operações comuns, como determinar se uma extensão de nome de ficheiro faz parte de um caminho e combinar duas cadeias num único nome de caminho.

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

Note

Em membros que aceitam um caminho como cadeia de entrada, esse caminho deve estar bem formado ou é levantada uma exceção. Por exemplo, se um caminho for totalmente qualificado mas começar com um espaço, o caminho não é cortado nos métodos da classe. Portanto, o caminho está mal formado e é levantada uma exceção. De forma semelhante, um caminho ou uma combinação de caminhos não pode ser totalmente qualificado duas vezes. Por exemplo, "c:\temp c:\windows" também levanta uma exceção na maioria dos casos. Certifique-se de que os seus caminhos estão bem formados ao usar métodos que aceitam uma cadeia de caminho.

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

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

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

  • "MyDir\\MySubdir" em C#, ou "MyDir\MySubDir" em Visual Basic.

  • "\\\\MyServer\\MyShare" em C#, ou "\\MyServer\MyShare" no Visual Basic.

Como todas estas operações são realizadas em cadeias, é impossível verificar se os resultados são válidos em todos os cenários. Por exemplo, o GetExtension método analisa uma cadeia que lhe passas e devolve a extensão dessa cadeia. No entanto, isto não significa que exista um ficheiro com essa extensão no disco.

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

Campos

Name Description
AltDirectorySeparatorChar

Fornece um carácter alternativo específico da plataforma usado para separar níveis de diretórios numa cadeia de caminho que reflete uma organização hierárquica do sistema de ficheiros.

DirectorySeparatorChar

Fornece um carácter específico da plataforma usado para separar os níveis de diretórios numa cadeia de caminho que reflete uma organização hierárquica do sistema de ficheiros.

InvalidPathChars
Obsoleto.
Obsoleto.

Fornece um array específico da plataforma de caracteres que não pode ser especificado em argumentos de string de caminho passados aos membros da Path classe.

PathSeparator

Um carácter separador específico de plataforma usado para separar cadeias de caminho em variáveis de ambiente.

VolumeSeparatorChar

Fornece um carácter separador de volume específico da plataforma.

Métodos

Name Description
ChangeExtension(String, String)

Altera a extensão de uma cadeia de caminho.

Combine(ReadOnlySpan<String>)

Combina uma extensão de cordas num caminho.

Combine(String, String, String, String)

Combina quatro cordas num caminho.

Combine(String, String, String)

Combina três cordas num caminho.

Combine(String, String)

Combina duas cordas num caminho.

Combine(String[])

Combina uma matriz de cordas num caminho.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Devolve um valor que indica se o caminho, especificado como um intervalo de apenas leitura, termina num separador de diretórios.

EndsInDirectorySeparator(String)

Devolve um valor que indica se o caminho especificado termina num separador de diretórios.

Exists(String)

Determina se o ficheiro ou diretório especificado existe.

GetDirectoryName(ReadOnlySpan<Char>)

Devolve a informação do diretório para o caminho especificado representado por um espaço de caracteres.

GetDirectoryName(String)

Devolve a informação do diretório para o caminho especificado.

GetExtension(ReadOnlySpan<Char>)

Devolve a extensão de um caminho de ficheiro que é representada por um espaço de caracteres apenas de leitura.

GetExtension(String)

Devolve a extensão (incluindo o período ".") da cadeia de caminho especificada.

GetFileName(ReadOnlySpan<Char>)

Devolve o nome do ficheiro e a extensão de um caminho de ficheiro que é representado por um espaço de caracteres apenas de leitura.

GetFileName(String)

Devolve o nome do ficheiro e a extensão da cadeia de caminho especificada.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Devolve o nome do ficheiro sem a extensão de um caminho de ficheiro representado por um espaço de caracteres apenas de leitura.

GetFileNameWithoutExtension(String)

Devolve o nome do ficheiro da cadeia de caminho especificada sem a extensão.

GetFullPath(String, String)

Devolve um caminho absoluto a partir de um caminho relativo e um caminho base totalmente qualificado.

GetFullPath(String)

Devolve o caminho absoluto para a cadeia de caminho especificada.

GetInvalidFileNameChars()

Obtém um array contendo os caracteres que não são permitidos nos nomes dos ficheiros.

GetInvalidPathChars()

Recebe um array contendo os caracteres que não são permitidos nos nomes dos caminhos.

GetPathRoot(ReadOnlySpan<Char>)

Obtém a informação do diretório raiz do caminho contido no espaço de caracteres especificado.

GetPathRoot(String)

Obtém a informação do diretório raiz do caminho contido na cadeia especificada.

GetRandomFileName()

Devolve um nome aleatório de pasta ou ficheiro.

GetRelativePath(String, String)

Devolve um caminho relativo de um caminho para outro.

GetTempFileName()

Cria um ficheiro temporário de nome único, de zero bytes, no disco e devolve o caminho completo desse ficheiro.

GetTempPath()

Devolve o caminho da pasta temporária do utilizador atual.

HasExtension(ReadOnlySpan<Char>)

Determina se o caminho representado pelo espaço de caracteres especificado inclui uma extensão de nome de ficheiro.

HasExtension(String)

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

IsPathFullyQualified(ReadOnlySpan<Char>)

Devolve um valor que indica se o caminho do ficheiro representado pelo intervalo de caracteres especificado está fixo para uma unidade específica ou caminho UNC.

IsPathFullyQualified(String)

Devolve um valor que indica se o caminho do ficheiro especificado está fixo para uma unidade específica ou para o caminho UNC.

IsPathRooted(ReadOnlySpan<Char>)

Devolve um valor que indica se o espaço de caracteres especificado que representa um caminho de ficheiro contém uma raiz.

IsPathRooted(String)

Devolve um valor que indica se a cadeia de caminho especificada contém uma raiz.

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

Concatena quatro componentes do caminho num único caminho.

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

Concatena três componentes de caminho num único caminho.

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

Concatena dois componentes do caminho num único caminho.

Join(ReadOnlySpan<String>)

Concatena um conjunto de caminhos num único caminho.

Join(String, String, String, String)

Concatena quatro caminhos num único caminho.

Join(String, String, String)

Concatena três caminhos num único caminho.

Join(String, String)

Concatena dois caminhos num único caminho.

Join(String[])

Concatena um array de caminhos num único caminho.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

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

TrimEndingDirectorySeparator(String)

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

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

Tenta concatenar três componentes de caminho num único intervalo de caracteres pré-alocados e retorna um valor que indica se a operação teve sucesso.

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

Tenta concatenar dois componentes de caminho num único espaço de caracteres pré-alocados, e retorna um valor que indica se a operação foi bem-sucedida.

Aplica-se a

Ver também