Path Classe

Definição

Executa operações em instâncias de String que contêm informações de caminho de arquivo ou diretório.Performs operations on String instances that contain file or directory path information. Essas operações são executadas de uma maneira em plataforma cruzada.These operations are performed in a cross-platform manner.

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.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

Comentários

Um caminho é uma cadeia de caracteres que fornece o local de um arquivo ou diretório.A path is a string that provides the location of a file or directory. 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.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. O formato exato de um caminho é determinado pela plataforma atual.The exact format of a path is determined by the current platform. Por exemplo, em alguns sistemas, um caminho pode começar com uma letra de unidade ou volume, enquanto esse elemento não está presente em outros sistemas.For example, on some systems, a path can start with a drive or volume letter, while this element is not present in other systems. Em alguns sistemas, os caminhos de arquivo podem conter extensões, que indicam o tipo de informações armazenadas no arquivo.On some systems, file paths can contain extensions, which indicate the type of information stored in the file. O formato de uma extensão de nome de arquivo é dependente da plataforma; por exemplo, alguns sistemas limitam extensões a três caracteres e outros não.The format of a file name extension is platform-dependent; for example, some systems limit extensions to three characters, and others do not. 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 pode ser usado ao especificar caminhos.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. Devido a essas diferenças, os campos da Path classe, bem como o comportamento exato de alguns membros da classe, Path são dependentes da plataforma.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.

Um caminho pode conter informações de localização absolutas ou relativas.A path can contain absolute or relative location information. Caminhos absolutos especificam totalmente um local: o arquivo ou diretório pode ser identificado exclusivamente, independentemente do local atual.Absolute paths fully specify a location: the file or directory can be uniquely identified regardless of the current location. Caminhos relativos especificam um local parcial: o local atual é usado como o ponto de partida ao localizar um arquivo especificado com um caminho relativo.Relative paths specify a partial location: the current location is used as the starting point when locating a file specified with a relative path. Para determinar o diretório atual, chame Directory.GetCurrentDirectory .To determine the current directory, call 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: " ..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:".

Para obter mais informações sobre formatos de caminho de arquivo no Windows, consulte formatos de caminho de arquivo em sistemas Windows.For more information on file path formats on Windows, see File path formats on Windows systems.

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.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 Membros de classe que modificam uma cadeia de caracteres de caminho, como ChangeExtension , não têm nenhum efeito sobre os nomes de arquivos no sistema de arquivos.Path class members that modify a path string, such as ChangeExtension, have no effect on names of files in the file system. Path os membros fazem, no entanto, validar o conteúdo de uma cadeia de caracteres de caminho especificado e lançar uma ArgumentException exceção se a cadeia de caracteres contiver personagens que não são válidos em cadeias de caracteres de caminho, conforme definido nos personagens retornados do GetInvalidPathChars método.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. Por exemplo, em plataformas de área de trabalho baseadas no Windows, caracteres de caminho inválidos podem incluir aspas ("), menor que ( <), greater than (> ), pipe (|), backspace (\b), NULL (\ 0) e caracteres Unicode 16 a 18 e 20 a 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.

Os membros da Path classe permitem que você execute operações comuns de forma rápida e fácil, como determinar se uma extensão de nome de arquivo é parte de um caminho e combinar duas cadeias de caracteres em um nome de caminho.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.

Todos os membros da Path classe são estáticos e, portanto, podem ser chamados sem uma instância de um caminho.All members of the Path class are static and can therefore be called without having an instance of a path.

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.In members that accept a path as an input string, that path must be well-formed or an exception is raised. 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.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Portanto, o caminho é malformado e uma exceção é gerada.Therefore, the path is malformed and an exception is raised. Da mesma forma, um caminho ou uma combinação de caminhos não pode ser totalmente qualificada duas vezes.Similarly, a path or a combination of paths cannot be fully qualified twice. Por exemplo, "c:\temp c:\Windows" também gera uma exceção na maioria dos casos.For example, "c:\temp c:\windows" also raises an exception in most cases. Verifique se os caminhos estão bem formados ao usar métodos que aceitem uma cadeia de caracteres de caminho.Ensure that your paths are well-formed when using methods that accept a path string.

Em membros que aceitam um caminho, o caminho pode se referir a um arquivo ou apenas a um diretório.In members that accept a path, the path can refer to a file or just a directory. O caminho especificado também pode se referir a um caminho relativo ou a um caminho UNC (Convenção de nomenclatura universal) para um servidor e um nome de compartilhamento.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Por exemplo, todos os seguintes são caminhos aceitáveis:For example, all the following are acceptable paths:

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

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

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

  • " \ \ \ \MyServer \ \MyShare" em C# ou " \ \meuservidor\meucompartilhamento" em Visual Basic."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in 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.Because all these operations are performed on strings, it is impossible to verify that the results are valid in all scenarios. 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.For example, the GetExtension method parses a string that you pass to it and returns the extension from that string. No entanto, isso não significa que um arquivo com essa extensão exista no disco.However, this does not mean that a file with that extension exists on the disk.

Para obter uma lista de tarefas comuns de e/s, consulte tarefas comuns de e/s.For a list of common I/O tasks, see Common I/O Tasks.

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.Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.

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.Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization.

InvalidPathChars
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.Provides a platform-specific array of characters that cannot be specified in path string arguments passed to members of the Path class.

PathSeparator

Um caractere separador específico da plataforma usado para separar cadeias de caracteres de caminho em variáveis de ambiente.A platform-specific separator character used to separate path strings in environment variables.

VolumeSeparatorChar

Fornece um caractere separador de volume específico à plataforma.Provides a platform-specific volume separator character.

Métodos

ChangeExtension(String, String)

Altera a extensão de uma cadeia de caracteres do caminho.Changes the extension of a path string.

Combine(String, String)

Combina duas cadeias de caracteres em um caminho.Combines two strings into a path.

Combine(String, String, String)

Combina três cadeias de caracteres em um caminho.Combines three strings into a path.

Combine(String, String, String, String)

Combina quatro cadeias de caracteres em um caminho.Combines four strings into a path.

Combine(String[])

Combina uma matriz de cadeias de caracteres em um caminho.Combines an array of strings into a path.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Retorna um valor que indica se o caminho, especificado como um intervalo somente leitura, termina em um separador de diretório.Returns a value that indicates whether the path, specified as a read-only span, ends in a directory separator.

EndsInDirectorySeparator(String)

Retorna um valor que indica se o caminho especificado termina em um separador de diretório.Returns a value that indicates whether the specified path ends in a directory separator.

GetDirectoryName(ReadOnlySpan<Char>)

Retorna as informações de diretório para o caminho especificado representado por um intervalo de caracteres.Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

Retorna as informações de diretório para a cadeia de caracteres do caminho especificado.Returns the directory information for the specified path string.

GetExtension(ReadOnlySpan<Char>)

Retorna a extensão de um caminho de arquivo que é representado por um intervalo de caracteres somente leitura.Returns the extension of a file path that is represented by a read-only character span.

GetExtension(String)

Retorna a extensão (incluindo o ponto ".") da cadeia de caracteres de caminho especificada.Returns the extension (including the period ".") of the specified path string.

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.Returns the file name and extension of a file path that is represented by a read-only character span.

GetFileName(String)

Retorna o nome de arquivo e a extensão da cadeia de caracteres do caminho especificado.Returns the file name and extension of the specified path string.

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.Returns the file name without the extension of a file path that is represented by a read-only character span.

GetFileNameWithoutExtension(String)

Retorna o nome de arquivo da cadeia de caracteres do caminho especificado sem a extensão.Returns the file name of the specified path string without the extension.

GetFullPath(String)

Retorna o caminho absoluto para a cadeia de caracteres do caminho especificado.Returns the absolute path for the specified path string.

GetFullPath(String, String)

Retorna um caminho absoluto de um caminho relativo e um caminho base totalmente qualificado.Returns an absolute path from a relative path and a fully qualified base path.

GetInvalidFileNameChars()

Obtém uma matriz que contém os caracteres que não são permitidos em nomes de arquivo.Gets an array containing the characters that are not allowed in file names.

GetInvalidPathChars()

Obtém uma matriz que contém os caracteres que não são permitidos em nomes de caminho.Gets an array containing the characters that are not allowed in path names.

GetPathRoot(ReadOnlySpan<Char>)

Obtém as informações do diretório raiz do caminho contido no intervalo de caracteres especificado.Gets the root directory information from the path contained in the specified character span.

GetPathRoot(String)

Obtém as informações do diretório raiz do caminho contido na cadeia de caracteres especificada.Gets the root directory information from the path contained in the specified string.

GetRandomFileName()

Retorna um nome de pasta ou nome de arquivo aleatório.Returns a random folder name or file name.

GetRelativePath(String, String)

Retorna um caminho relativo de um caminho para outro.Returns a relative path from one path to another.

GetTempFileName()

Cria um arquivo temporário de zero byte nomeado exclusivamente no disco e retorna o caminho completo do arquivo.Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

GetTempPath()

Retorna o caminho da pasta temporária do usuário atual.Returns the path of the current user's temporary folder.

HasExtension(ReadOnlySpan<Char>)

Determina se o caminho representado pelo intervalo de caracteres especificado inclui uma extensão de nome de arquivo.Determines whether the path represented by the specified character span includes a file name extension.

HasExtension(String)

Determina se um caminho inclui uma extensão de nome de arquivo.Determines whether a path includes a file name extension.

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.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)

Retorna um valor que indica se o caminho de arquivo especificado está fixo em uma unidade ou um caminho UNC específico.Returns a value that indicates whether the specified file path is fixed to a specific drive or UNC path.

IsPathRooted(ReadOnlySpan<Char>)

Retorna um valor que indica se o intervalo de caracteres especificado que representa um caminho de arquivo contém uma raiz.Returns a value that indicates whether the specified character span that represents a file path contains a root.

IsPathRooted(String)

Retorna um valor que indica se a cadeia de caracteres do caminho especificado contém uma raiz.Returns a value indicating whether the specified path string contains a root.

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

Concatena componentes de dois caminhos em um único caminho.Concatenates two path components into a single path.

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

Concatena componentes de três caminhos em um único caminho.Concatenates three path components into a single path.

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

Concatena componentes de quatro caminhos em um único caminho.Concatenates four path components into a single path.

Join(String, String)

Concatena dois caminhos em um único caminho.Concatenates two paths into a single path.

Join(String, String, String)

Concatena três caminhos em um único caminho.Concatenates three paths into a single path.

Join(String, String, String, String)

Concatena quatro caminhos em um único caminho.Concatenates four paths into a single path.

Join(String[])

Concatena uma matriz de caminhos em um único caminho.Concatenates an array of paths into a single path.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Corta um separador de diretório à direita além da raiz do caminho especificado.Trims one trailing directory separator beyond the root of the specified path.

TrimEndingDirectorySeparator(String)

Corta um separador de diretório à direita além da raiz do caminho especificado.Trims one trailing directory separator beyond the root of the specified path.

TryJoin(ReadOnlySpan<Char>, 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.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)

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.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

Aplica-se a

Confira também