Path.Combine Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Combina cordas num caminho.
Sobrecargas
| Name | Description |
|---|---|
| Combine(String[]) |
Combina uma matriz de cordas num caminho. |
| Combine(String, String) |
Combina duas cordas num caminho. |
| Combine(String, String, String) |
Combina três cordas num caminho. |
| Combine(String, String, String, String) |
Combina quatro cordas num caminho. |
Observações
Este método destina-se a concatenar cadeias individuais numa única cadeia que representa um caminho de ficheiro. No entanto, se um argumento diferente do primeiro contiver um caminho enraizado, quaisquer componentes de caminho anteriores são ignorados, e a cadeia retornada começa com esse componente de caminho enraizado. Como alternativa ao método Combine, considere usar os métodos Join ou TryJoin (não disponíveis no .NET Framework).
Importante
Este método assume que o primeiro argumento é um caminho absoluto e que o argumento ou argumentos seguintes são caminhos relativos. Se isso não for o caso, e particularmente se quaisquer argumentos subsequentes forem strings introduzidas pelo utilizador, chame o Join método ou TryJoin em vez disso.
Combine(String[])
Combina uma matriz de cordas num caminho.
public:
static System::String ^ Combine(... cli::array <System::String ^> ^ paths);
public static string Combine(params string[] paths);
static member Combine : string[] -> string
Public Shared Function Combine (ParamArray paths As String()) As String
Parâmetros
- paths
- String[]
Uma variedade de partes do caminho.
Devoluções
Os caminhos combinados.
Exceções
.NET Framework e versões .NET Core anteriores à 2.1: Uma das strings no array contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().
Uma das cadeias do array é null.
Exemplos
O exemplo seguinte combina um array de cadeias num caminho.
string[] paths = {@"d:\archives", "2001", "media", "images"};
string fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);
Dim paths As String() = {"d:\archives", "2001", "media", "images"}
Dim fullPath As String = Path.Combine(paths)
Console.WriteLine(fullPath)
Observações
paths Deve ser um array das partes do caminho a combinar. Se um dos caminhos subsequentes for um caminho absoluto, então a operação de combinação reinicia a partir desse caminho absoluto, descartando todos os caminhos combinados anteriores.
Se qualquer elemento em paths exceto o último não for um drive e não terminar nem com o DirectorySeparatorChar ou o AltDirectorySeparatorChar caractere, o Combine método adiciona um DirectorySeparatorChar carácter entre esse elemento e o seguinte. Note que, se o elemento terminar num carácter separador de caminho que não é apropriado para a plataforma de destino, o Combine método preserva o carácter separador de caminho original e adiciona um suportado. O exemplo seguinte compara o resultado em sistemas Windows e baseados em Unix quando a barra inversa é usada como um carácter separador de caminhos.
string[] paths = {@"d:\archives", "2001", "media", "images"};
string fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);
paths = new string[] {@"d:\archives\", @"2001\", "media", "images"};
fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);
paths = new string[] {"d:/archives/", "2001/", "media", "images"};
fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);
// The example displays the following output if run on a Windows system:
// d:\archives\2001\media\images
// d:\archives\2001\media\images
// d:/archives/2001/media\images
//
// The example displays the following output if run on a Unix-based system:
// d:\archives/2001/media/images
// d:\archives\/2001\/media/images
// d:/archives/2001/media/images
Dim paths As String() = { "d:\archives", "2001", "media", "images" }
Dim fullPath As String = Path.Combine(paths)
Console.WriteLine(fullPath)
paths = { "d:\archives\", "2001\", "media", "images" }
fullPath = Path.Combine(paths)
Console.WriteLine(fullPath)
paths = { "d:/archives/", "2001/", "media", "images" }
fullPath = Path.Combine(paths)
Console.WriteLine(fullPath)
' The example displays the following output if run on a Windows system:
' d:\archives\2001\media\images
' d:\archives\2001\media\images
' d:/archives/2001/media\images
'
' The example displays the following output if run on a Linux system:
' d:\archives/2001/media/images
' d:\archives\/2001\/media/images
' d:/archives/2001/media/images
As cordas de comprimento zero são omitidas do caminho combinado.
Os parâmetros não são analisados se tiverem espaço em branco.
.NET Framework e versões .NET Core anteriores à 2.1: Nem todos os caracteres inválidos para nomes de diretórios e ficheiros são interpretados como inaceitáveis pelo método Combine, porque pode usar estes caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt") possa ser inválido se criar um ficheiro a partir dele, é válido como cadeia de pesquisa. Por isso, é interpretado com sucesso pelo Combine método.
Ver também
Aplica-se a
Combine(String, String)
Combina duas cordas num caminho.
public:
static System::String ^ Combine(System::String ^ path1, System::String ^ path2);
public static string Combine(string path1, string path2);
static member Combine : string * string -> string
Public Shared Function Combine (path1 As String, path2 As String) As String
Parâmetros
- path1
- String
O primeiro caminho para combinar.
- path2
- String
O segundo caminho para combinar.
Devoluções
Os caminhos combinados. Se um dos caminhos especificados for uma cadeia de comprimento zero, este método devolve o outro caminho. Se path2 contém um caminho absoluto, este método devolve path2.
Exceções
.NET Framework e versões .NET Core anteriores à 2.1: path1 ou path2 contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().
path1 ou path2 é null.
Exemplos
O exemplo seguinte demonstra o uso do método Combine em Windows.
using System;
using System.IO;
public class ChangeExtensionTest
{
public static void Main()
{
string path1 = "c:\\temp";
string path2 = "subdir\\file.txt";
string path3 = "c:\\temp.txt";
string path4 = "c:^*&)(_=@#'\\^.*(.txt";
string path5 = "";
CombinePaths(path1, path2);
CombinePaths(path1, path3);
CombinePaths(path3, path2);
CombinePaths(path4, path2);
CombinePaths(path5, path2);
}
private static void CombinePaths(string p1, string p2)
{
string combination = Path.Combine(p1, p2);
Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'",
p1, p2, Environment.NewLine, combination);
Console.WriteLine();
}
}
// This code produces output similar to the following:
//
// When you combine 'c:\temp' and 'subdir\file.txt', the result is:
// 'c:\temp\subdir\file.txt'
//
// When you combine 'c:\temp' and 'c:\temp.txt', the result is:
// 'c:\temp.txt'
//
// When you combine 'c:\temp.txt' and 'subdir\file.txt', the result is:
// 'c:\temp.txt\subdir\file.txt'
//
// When you combine 'c:^*&)(_=@#'\^.*(.txt' and 'subdir\file.txt', the result is:
// 'c:^*&)(_=@#'\^.*(.txt\subdir\file.txt'
//
// When you combine '' and 'subdir\file.txt', the result is:
// 'subdir\file.txt'
Imports System.IO
Public Class ChangeExtensionTest
Public Shared Sub Main()
Dim path1 As String = "c:\temp"
Dim path2 As String = "subdir\file.txt"
Dim path3 As String = "c:\temp.txt"
Dim path4 As String = "c:^*&)(_=@#'\\^.*(.txt"
Dim path5 As String = ""
Dim path6 As String = Nothing
CombinePaths(path1, path2)
CombinePaths(path1, path3)
CombinePaths(path3, path2)
CombinePaths(path4, path2)
CombinePaths(path5, path2)
CombinePaths(path6, path2)
End Sub
Private Shared Sub CombinePaths(p1 As String, p2 As String)
Try
Dim combination As String = Path.Combine(p1, p2)
Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'", p1, p2, Environment.NewLine, combination)
Catch e As Exception
If p1 = Nothing Then
p1 = "Nothing"
End If
If p2 = Nothing Then
p2 = "Nothing"
End If
Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment.NewLine, e.Message)
End Try
Console.WriteLine()
End Sub
End Class
' This code produces output similar to the following:
'
' When you combine 'c:\temp' and 'subdir\file.txt', the result is:
' 'c:\temp\subdir\file.txt'
'
' When you combine 'c:\temp' and 'c:\temp.txt', the result is:
' 'c:\temp.txt'
'
' When you combine 'c:\temp.txt' and 'subdir\file.txt', the result is:
' 'c:\temp.txt\subdir\file.txt'
'
' When you combine 'c:^*&)(_=@#'\^.*(.txt' and 'subdir\file.txt', the result is:
' 'c:^*&)(_=@#'\^.*(.txt\subdir\file.txt'
'
' When you combine '' and 'subdir\file.txt', the result is:
' 'subdir\file.txt'
'
' You cannot combine '' and 'subdir\file.txt' because:
' Value cannot be null.
' Parameter name: path1
Observações
Se path1 não for uma referência de drive (ou seja, "C:" ou "D:") e não terminar com um carácter separador válido conforme definido em DirectorySeparatorChar, AltDirectorySeparatorChar, ou VolumeSeparatorChar, DirectorySeparatorChar é acrescentado antes path1 da concatenação. Note que, se path1 terminar num carácter separador de caminho que não é apropriado para a plataforma de destino, o Combine método preserva o carácter separador de caminho original e adiciona um suportado. O exemplo seguinte compara o resultado em sistemas Windows e baseados em Unix quando a barra inversa é usada como um carácter separador de caminhos.
var result = Path.Combine(@"C:\Pictures\", "Saved Pictures");
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
// C:\Pictures\Saved Pictures
//
// The example displays the following output if run on a Unix-based system:
// C:\Pictures\/Saved Pictures
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures")
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
' C:\Pictures\Saved Pictures
'
' The example displays the following output if run on a Unix-based system:
' C:\Pictures\/Saved Pictures
Se path2 não incluir uma raiz (por exemplo, se path2 não começar com um carácter separador ou uma especificação de unidade), o resultado é uma concatenação dos dois caminhos, com um carácter separador intermediário. Se path2 inclui uma raiz, path2 é devolvido.
Os parâmetros não são analisados se tiverem espaço em branco. Portanto, se path2 incluir espaço em branco (por exemplo, " \file.txt "), o Combine método acrescenta path2 a path1 em vez de devolver apenas path2.
.NET Framework e versões .NET Core anteriores à 2.1: Nem todos os caracteres inválidos para nomes de diretórios e ficheiros são interpretados como inaceitáveis pelo método Combine, porque pode usar estes caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt") possa ser inválido se criar um ficheiro a partir dele, é válido como cadeia de pesquisa. Por isso, é interpretado com sucesso pelo Combine método.
Para uma lista de tarefas comuns de E/S, consulte Tarefas Comuns de E/S.
Ver também
- Formatos de caminho de ficheiro em sistemas Windows
- E/S de arquivo e fluxo
- Como: Ler texto de um arquivo
- Como: Gravar texto em um arquivo
Aplica-se a
Combine(String, String, String)
Combina três cordas num caminho.
public:
static System::String ^ Combine(System::String ^ path1, System::String ^ path2, System::String ^ path3);
public static string Combine(string path1, string path2, string path3);
static member Combine : string * string * string -> string
Public Shared Function Combine (path1 As String, path2 As String, path3 As String) As String
Parâmetros
- path1
- String
O primeiro caminho para combinar.
- path2
- String
O segundo caminho para combinar.
- path3
- String
O terceiro caminho para combinar.
Devoluções
Os caminhos combinados.
Exceções
.NET Framework e .NET Core versões anteriores à 2.1: path1, path2 ou path3 contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().
path1, path2, ou path3 é null.
Exemplos
O exemplo seguinte combina três caminhos.
string p1 = @"d:\archives\";
string p2 = "media";
string p3 = "images";
string combined = Path.Combine(p1, p2, p3);
Console.WriteLine(combined);
Dim p1 As String = "d:\archives\"
Dim p2 As String = "media"
Dim p3 As String = "images"
Dim combined As String = Path.Combine(p1, p2, p3)
Console.WriteLine(combined)
Observações
path1 deve ser um caminho absoluto (por exemplo, "d:\arquivos" ou "\\arquivos\público"). Se path2 ou path3 também for um caminho absoluto, a operação de combinar descarta todos os caminhos previamente combinados e reinicia para esse caminho absoluto.
As cordas de comprimento zero são omitidas do caminho combinado.
Se path1 ou não for uma referência de disco (ou seja, "C:" ou "D:") e não terminar com um carácter separador válido conforme definido em DirectorySeparatorChar, AltDirectorySeparatorChar, ou VolumeSeparatorChar, DirectorySeparatorChar é acrescentado a path1 ou path2 antes da concatenaçãopath2. Note que, se path1 ou path2 terminar num carácter separador de caminho que não é apropriado para a plataforma de destino, o Combine método preserva o carácter separador de caminho original e acrescenta um suportado. O exemplo seguinte compara o resultado em sistemas Windows e baseados em Unix quando a barra inversa é usada como um carácter separador de caminhos.
var result = Path.Combine(@"C:\Pictures\", @"Saved Pictures\", "2019");
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
// C:\Pictures\Saved Pictures\2019
//
// The example displays the following output if run on a Unix-based system:
// C:\Pictures\/Saved Pictures\/2019
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures\", "2019")
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
' C:\Pictures\Saved Pictures\2019
'
' The example displays the following output if run on a Unix-based system:
' C:\Pictures\/Saved Pictures\/2019
Se path2 não incluir uma raiz (por exemplo, se path2 não começar com um carácter separador ou uma especificação de unidade), o resultado é uma concatenação dos dois caminhos, com um carácter separador intermediário. Se path2 inclui uma raiz, path2 é devolvido.
Os parâmetros não são analisados se tiverem espaço em branco. Portanto, se path2 incluir espaço em branco (por exemplo, " \file.txt "), o Combine método acrescenta path2 a path1.
.NET Framework e versões .NET Core anteriores à 2.1: Nem todos os caracteres inválidos para nomes de diretórios e ficheiros são interpretados como inaceitáveis pelo método Combine, porque pode usar estes caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt") possa ser inválido se criar um ficheiro a partir dele, é válido como cadeia de pesquisa. Por isso, é interpretado com sucesso pelo Combine método.
Ver também
Aplica-se a
Combine(String, String, String, String)
Combina quatro cordas num caminho.
public:
static System::String ^ Combine(System::String ^ path1, System::String ^ path2, System::String ^ path3, System::String ^ path4);
public static string Combine(string path1, string path2, string path3, string path4);
static member Combine : string * string * string * string -> string
Public Shared Function Combine (path1 As String, path2 As String, path3 As String, path4 As String) As String
Parâmetros
- path1
- String
O primeiro caminho para combinar.
- path2
- String
O segundo caminho para combinar.
- path3
- String
O terceiro caminho para combinar.
- path4
- String
O quarto caminho para combinar.
Devoluções
Os caminhos combinados.
Exceções
.NET Framework e versões .NET Core anteriores à 2.1: path1, path2, path3 ou path4 contém um ou mais caracteres inválidos definidos em GetInvalidPathChars().
path1, path2, path3, ou path4 é null.
Exemplos
O exemplo seguinte combina quatro caminhos.
string path1 = @"d:\archives\";
string path2 = "2001";
string path3 = "media";
string path4 = "images";
string combinedPath = Path.Combine(path1, path2, path3, path4);
Console.WriteLine(combinedPath);
Dim path1 As String = "d:\archives\"
Dim path2 As String = "2001"
Dim path3 As String = "media"
Dim path4 As String = "imaged"
Dim combinedPath As String = Path.Combine(path1, path2, path3, path4)
Console.WriteLine(combined)
Observações
path1 deve ser um caminho absoluto (por exemplo, "d:\arquivos" ou "\\arquivos\público"). Se um dos caminhos subsequentes também for um caminho absoluto, a operação de combinar descarta todos os caminhos previamente combinados e reinicia para esse caminho absoluto.
As cordas de comprimento zero são omitidas do caminho combinado.
Se path1, , ou path3 não for uma referência de drive (ou seja, "C:" ou "D:") e não terminar com um carácter separador válido conforme definido em DirectorySeparatorChar, AltDirectorySeparatorChar, ou VolumeSeparatorChar, DirectorySeparatorChar é acrescentado antes da path2concatenação. Note que, se path1, path2, ou path3 terminar num carácter separador de caminho que não é apropriado para a plataforma de destino, o Combine método preserva o carácter separador de caminho original e acrescenta um suportado. O exemplo seguinte compara o resultado em sistemas Windows e baseados em Unix quando a barra inversa é usada como um carácter separador de caminhos.
var result = Path.Combine(@"C:\Pictures\", @"Saved Pictures\", @"2019\", @"Jan\");
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
// C:\Pictures\Saved Pictures\2019\Jan\
//
// The example displays the following output if run on a Unix-based system:
// C:\Pictures\/Saved Pictures\/2019\/Jan\
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures\", "2019\", "Jan\")
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
' C:\Pictures\Saved Pictures\2019\Jan\
'
' The example displays the following output if run on a Unix-based system:
' C:\Pictures\/Saved Pictures\/2019\/Jan\
Se path2 não incluir uma raiz (por exemplo, se path2 não começar com um carácter separador ou uma especificação de unidade), o resultado é uma concatenação dos dois caminhos, com um carácter separador intermediário. Se path2 inclui uma raiz, path2 é devolvido.
Os parâmetros não são analisados se tiverem espaço em branco. Portanto, se path2 incluir espaço em branco (por exemplo, " \file.txt "), o Combine método acrescenta path2 a path1.
.NET Framework e versões .NET Core anteriores à 2.1: Nem todos os caracteres inválidos para nomes de diretórios e ficheiros são interpretados como inaceitáveis pelo método Combine, porque pode usar estes caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt") possa ser inválido se criar um ficheiro a partir dele, é válido como cadeia de pesquisa. Por isso, é interpretado com sucesso pelo Combine método.