Path.Combine Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Combina cadeias de caracteres em um caminho.
Sobrecargas
Combine(ReadOnlySpan<String>) |
Combina um intervalo de cadeias de caracteres em um caminho. |
Combine(String[]) |
Combina uma matriz de cadeias de caracteres em um 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. |
Comentários
Esse método destina-se a concatenar cadeias de caracteres individuais em uma única cadeia de caracteres que representa um caminho de arquivo. No entanto, se um argumento diferente do primeiro contiver um caminho com raiz, todos os componentes de caminho anteriores serão ignorados e a cadeia de caracteres retornada começará com esse componente de caminho com raiz. Como alternativa ao método Combine
, considere usar os métodos Join ou TryJoin (não disponíveis no .NET Framework).
Importante
Esse método pressupõe que o primeiro argumento é um caminho absoluto e que os argumentos ou argumentos a seguir são caminhos relativos. Se esse não for o caso e, particularmente, se algum argumento subsequente for a entrada de cadeias de caracteres pelo usuário, chame o método Join ou TryJoin.
Combine(ReadOnlySpan<String>)
Combina um intervalo de cadeias de caracteres em um caminho.
public:
static System::String ^ Combine(ReadOnlySpan<System::String ^> paths);
public static string Combine (scoped ReadOnlySpan<string> paths);
static member Combine : ReadOnlySpan<string> -> string
Public Shared Function Combine (paths As ReadOnlySpan(Of String)) As String
Parâmetros
- paths
- ReadOnlySpan<String>
Um intervalo de partes do caminho.
Retornos
Os caminhos combinados.
Aplica-se a
Combine(String[])
- Origem:
- Path.cs
- Origem:
- Path.cs
- Origem:
- Path.cs
Combina uma matriz de cadeias de caracteres em um 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 matriz de partes do caminho.
Retornos
Os caminhos combinados.
Exceções
Versões do .NET Framework e do .NET Core anteriores à 2.1: uma das cadeias de caracteres na matriz contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().
Uma das cadeias de caracteres na matriz é null
.
Exemplos
O exemplo a seguir combina uma matriz de cadeias de caracteres em um 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)
Comentários
paths
deve ser uma matriz das partes do caminho a serem combinadas. Se um dos caminhos subsequentes for um caminho absoluto, a operação de combinação será redefinida começando com esse caminho absoluto, descartando todos os caminhos combinados anteriores.
Se qualquer elemento em paths
mas o último não for uma unidade e não terminar com o DirectorySeparatorChar ou o caractere AltDirectorySeparatorChar, o método Combine
adicionará um caractere DirectorySeparatorChar entre esse elemento e o próximo. Observe que, se o elemento terminar em um caractere separador de caminho que não é apropriado para a plataforma de destino, o método Combine
preservará o caractere do separador de caminho original e acrescentará um com suporte. O exemplo a seguir compara o resultado em sistemas baseados em Windows e Unix quando a barra invertida é usada como um caractere separador de caminho.
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
Cadeias de caracteres de comprimento zero são omitidas do caminho combinado.
Os parâmetros não serão analisados se tiverem espaço em branco.
Versões do .NET Framework e do .NET Core com mais de 2.1: nem todos os caracteres inválidos para nomes de diretório e arquivo são interpretados como inaceitáveis pelo método Combine
, pois você pode usar esses caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt")
pode ser inválido se você criar um arquivo a partir dele, ele é válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo método Combine
.
Confira também
Aplica-se a
Combine(String, String)
- Origem:
- Path.cs
- Origem:
- Path.cs
- Origem:
- Path.cs
Combina duas cadeias de caracteres em um 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 a ser combinado.
- path2
- String
O segundo caminho a ser combinado.
Retornos
Os caminhos combinados. Se um dos caminhos especificados for uma cadeia de caracteres de comprimento zero, esse método retornará o outro caminho. Se path2
contiver um caminho absoluto, esse método retornará path2
.
Exceções
Versões do .NET Framework e do .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 a seguir demonstra o uso do método Combine
no Windows.
using namespace System;
using namespace System::IO;
void CombinePaths( String^ p1, String^ p2 )
{
try
{
String^ combination = Path::Combine( p1, p2 );
Console::WriteLine( "When you combine '{0}' and '{1}', the result is: {2}'{3}'", p1, p2, Environment::NewLine, combination );
}
catch ( Exception^ e )
{
if (p1 == nullptr)
p1 = "nullptr";
if (p2 == nullptr)
p2 = "nullptr";
Console::WriteLine( "You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment::NewLine, e->Message );
}
Console::WriteLine();
}
int main()
{
String^ path1 = "c:\\temp";
String^ path2 = "subdir\\file.txt";
String^ path3 = "c:\\temp.txt";
String^ path4 = "c:^*&)(_=@#'\\^.*(.txt";
String^ path5 = "";
String^ path6 = nullptr;
CombinePaths( path1, path2 );
CombinePaths( path1, path3 );
CombinePaths( path3, path2 );
CombinePaths( path4, path2 );
CombinePaths( path5, path2 );
CombinePaths( path6, path2 );
}
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
Comentários
Se path1
não for uma referência de unidade (ou seja, "C:" ou "D:") e não terminar com um caractere separador válido, conforme definido em DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar será acrescentado a path1
antes da concatenação. Observe que, se path1
termina em um caractere separador de caminho que não é apropriado para a plataforma de destino, o método Combine
preserva o caractere separador de caminho original e acrescenta um com suporte. O exemplo a seguir compara o resultado em sistemas baseados em Windows e Unix quando a barra invertida é usada como um caractere separador de caminho.
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 caractere separador ou uma especificação de unidade), o resultado será uma concatenação dos dois caminhos, com um caractere separador interveniante. Se path2
incluir uma raiz, path2
será retornado.
Os parâmetros não serão analisados se tiverem espaço em branco. Portanto, se path2
incluir espaço em branco (por exemplo, " \file.txt "), o método Combine acrescenta path2
a path1
em vez de retornar apenas path2
.
Versões do .NET Framework e do .NET Core com mais de 2.1: nem todos os caracteres inválidos para nomes de diretório e arquivo são interpretados como inaceitáveis pelo método Combine
, pois você pode usar esses caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt")
pode ser inválido se você criar um arquivo a partir dele, ele é válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo método Combine
.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
- formatos de caminho de arquivo em sistemas Windows
- de E/S de Fluxo e Arquivo
- Como ler texto de um arquivo
- Como gravar texto em um arquivo
Aplica-se a
Combine(String, String, String)
- Origem:
- Path.cs
- Origem:
- Path.cs
- Origem:
- Path.cs
Combina três cadeias de caracteres em um 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 a ser combinado.
- path2
- String
O segundo caminho a ser combinado.
- path3
- String
O terceiro caminho a ser combinado.
Retornos
Os caminhos combinados.
Exceções
As versões do .NET Framework e do .NET Core 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 a seguir 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)
Comentários
path1
deve ser um caminho absoluto (por exemplo, "d:\archives" ou "\\archives\public"). Se path2
ou path3
também for um caminho absoluto, a operação de combinação descartará todos os caminhos e redefinições combinados anteriormente para esse caminho absoluto.
Cadeias de caracteres de comprimento zero são omitidas do caminho combinado.
Se path1
ou path2
não for uma referência de unidade (ou seja, "C:" ou "D:") e não terminar com um caractere separador válido, conforme definido em DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar será acrescentado a path1
ou path2
antes da concatenação. Observe que se path1
ou path2
termina em um caractere separador de caminho que não é apropriado para a plataforma de destino, o método Combine
preserva o caractere separador de caminho original e acrescenta um com suporte. O exemplo a seguir compara o resultado em sistemas baseados em Windows e Unix quando a barra invertida é usada como um caractere separador de caminho.
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 caractere separador ou uma especificação de unidade), o resultado será uma concatenação dos dois caminhos, com um caractere separador interveniante. Se path2
incluir uma raiz, path2
será retornado.
Os parâmetros não serão analisados se tiverem espaço em branco. Portanto, se path2
incluir espaço em branco (por exemplo, " \file.txt "), o método Combine acrescenta path2
a path1
.
Versões do .NET Framework e do .NET Core com mais de 2.1: nem todos os caracteres inválidos para nomes de diretório e arquivo são interpretados como inaceitáveis pelo método Combine
, pois você pode usar esses caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt")
pode ser inválido se você criar um arquivo a partir dele, ele é válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo método Combine
.
Confira também
Aplica-se a
Combine(String, String, String, String)
- Origem:
- Path.cs
- Origem:
- Path.cs
- Origem:
- Path.cs
Combina quatro cadeias de caracteres em um 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 a ser combinado.
- path2
- String
O segundo caminho a ser combinado.
- path3
- String
O terceiro caminho a ser combinado.
- path4
- String
O quarto caminho a ser combinado.
Retornos
Os caminhos combinados.
Exceções
As versões do .NET Framework e do .NET Core anteriores a 2.1: path1
, path2
, path3
ou path4
contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().
path1
, path2
, path3
ou path4
é null
.
Exemplos
O exemplo a seguir 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)
Comentários
path1
deve ser um caminho absoluto (por exemplo, "d:\archives" ou "\\archives\public"). Se um dos caminhos subsequentes também for um caminho absoluto, a operação de combinação descartará todos os caminhos e redefinições combinados anteriormente para esse caminho absoluto.
Cadeias de caracteres de comprimento zero são omitidas do caminho combinado.
Se path1
, path2
ou path3
não for uma referência de unidade (ou seja, "C:" ou "D:") e não terminar com um caractere separador válido, conforme definido em DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar será acrescentado a ele antes da concatenação. Observe que, se path1
, path2
ou path3
termina em um caractere separador de caminho que não é apropriado para a plataforma de destino, o método Combine
preserva o caractere separador de caminho original e acrescenta um com suporte. O exemplo a seguir compara o resultado em sistemas baseados em Windows e Unix quando a barra invertida é usada como um caractere separador de caminho.
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 caractere separador ou uma especificação de unidade), o resultado será uma concatenação dos dois caminhos, com um caractere separador interveniante. Se path2
incluir uma raiz, path2
será retornado.
Os parâmetros não serão analisados se tiverem espaço em branco. Portanto, se path2
incluir espaço em branco (por exemplo, " \file.txt "), o método Combine acrescenta path2
a path1
.
Versões do .NET Framework e do .NET Core com mais de 2.1: nem todos os caracteres inválidos para nomes de diretório e arquivo são interpretados como inaceitáveis pelo método Combine
, pois você pode usar esses caracteres para caracteres curinga de pesquisa. Por exemplo, embora Path.Combine("c:\\", "*.txt")
pode ser inválido se você criar um arquivo a partir dele, ele é válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo método Combine
.