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 as cadeias de caracteres em um caminho.
Sobrecargas
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 Combine
método , considere usar os Join métodos ou TryJoin .
Importante
Esse método pressupõe que o primeiro argumento seja um caminho absoluto e que o argumento ou os argumentos a seguir sejam caminhos relativos. Se esse não for o caso e, particularmente, se algum argumento subsequente for uma entrada de cadeia de caracteres pelo usuário, chame o Join método ou TryJoin .
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
.NET Framework e versões 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 no paths
, mas o último não for uma unidade e não terminar com o DirectorySeparatorChar ou o AltDirectorySeparatorChar caractere, o Combine
método adicionará um DirectorySeparatorChar caractere 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 Combine
método preservará o caractere 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.
.NET Framework e versões do .NET Core com mais de 2.1: nem todos os caracteres inválidos para diretório e nomes de arquivo são interpretados como inaceitáveis pelo Combine
método , pois você pode usar esses caracteres para pesquisar caracteres curinga. Por exemplo, embora Path.Combine("c:\\", "*.txt")
possa ser inválido se você criar um arquivo com base nele, ele será válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo Combine
método .
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 comprimento zero, esse método retornará o outro caminho. Se path2
contiver um caminho absoluto, esse método retornará path2
.
Exceções
.NET Framework e versões 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 Combine
método 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
terminar em um caractere separador de caminho que não é apropriado para a plataforma de destino, o Combine
método preservará o caractere 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.
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 intervindo. 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 Combine método acrescentará path2
a path1
em vez de retornar apenas path2
.
.NET Framework e versões do .NET Core com mais de 2.1: nem todos os caracteres inválidos para diretório e nomes de arquivo são interpretados como inaceitáveis pelo Combine
método , pois você pode usar esses caracteres para pesquisar caracteres curinga. Por exemplo, embora Path.Combine("c:\\", "*.txt")
possa ser inválido se você criar um arquivo com base nele, ele será válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo Combine
método .
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
- E/S de arquivo e de fluxo
- 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
.NET Framework e versões do .NET Core anteriores a 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 combinados anteriormente e redefinirá 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
terminar em um caractere separador de caminho que não é apropriado para a plataforma de destino, o Combine
método 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.
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 intervindo. 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 Combine método acrescentará path2
a path1
.
.NET Framework e versões do .NET Core com mais de 2.1: nem todos os caracteres inválidos para diretório e nomes de arquivo são interpretados como inaceitáveis pelo Combine
método , pois você pode usar esses caracteres para pesquisar caracteres curinga. Por exemplo, embora Path.Combine("c:\\", "*.txt")
possa ser inválido se você criar um arquivo com base nele, ele será válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo Combine
método .
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
.NET Framework e versões 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 combinados anteriormente e redefinirá 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 Combine
método 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 intervindo. 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 Combine método acrescentará path2
a path1
.
.NET Framework e versões do .NET Core com mais de 2.1: nem todos os caracteres inválidos para diretório e nomes de arquivo são interpretados como inaceitáveis pelo Combine
método , pois você pode usar esses caracteres para pesquisar caracteres curinga. Por exemplo, embora Path.Combine("c:\\", "*.txt")
possa ser inválido se você criar um arquivo com base nele, ele será válido como uma cadeia de caracteres de pesquisa. Portanto, ele é interpretado com êxito pelo Combine
método .
Confira também
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de