Path.Combine Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Kombinuje řetězce do cesty.
Přetížení
Combine(ReadOnlySpan<String>) |
Kombinuje rozsah řetězců do cesty. |
Combine(String[]) |
Kombinuje pole řetězců do cesty. |
Combine(String, String) |
Kombinuje dva řetězce do cesty. |
Combine(String, String, String) |
Kombinuje tři řetězce do cesty. |
Combine(String, String, String, String) |
Kombinuje čtyři řetězce do cesty. |
Poznámky
Tato metoda je určena ke zřetězení jednotlivých řetězců do jednoho řetězce, který představuje cestu k souboru. Pokud však argument jiný než první obsahuje kořenovou cestu, všechny předchozí součásti cesty jsou ignorovány a vrácený řetězec začíná touto kořenovou cestou komponentou. Jako alternativu k metodě Combine
zvažte použití metod Join nebo TryJoin.
Důležitý
Tato metoda předpokládá, že první argument je absolutní cesta a že následující argument nebo argumenty jsou relativní cesty. Pokud se nejedná o případ, a zejména pokud jsou další argumenty vstupní řetězce uživatelem, zavolejte místo toho Join nebo TryJoin metodu.
Combine(ReadOnlySpan<String>)
Kombinuje rozsah řetězců do cesty.
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
Parametry
- paths
- ReadOnlySpan<String>
Rozsah částí cesty.
Návraty
Kombinované cesty.
Platí pro
Combine(String[])
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
Kombinuje pole řetězců do cesty.
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
Parametry
- paths
- String[]
Pole částí cesty.
Návraty
Kombinované cesty.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: Jeden z řetězců v poli obsahuje jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().
Jeden z řetězců v poli je null
.
Příklady
Následující příklad kombinuje pole řetězců do cesty.
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)
Poznámky
paths
by měla být pole částí cesty, které se mají kombinovat. Pokud je jedna z následujících cest absolutní cestou, operace kombinování se resetuje počínaje touto absolutní cestou a zahodí všechny předchozí kombinované cesty.
Pokud jakýkoli prvek v paths
, ale poslední není jednotka a nekončí buď DirectorySeparatorChar nebo AltDirectorySeparatorChar znak, metoda Combine
přidá DirectorySeparatorChar znak mezi daný prvek a další znak. Všimněte si, že pokud prvek končí znak oddělovače cesty, který není vhodný pro cílovou platformu, metoda Combine
zachová původní znak oddělovače cesty a připojí podporovaný znak. Následující příklad porovnává výsledek v systémech Windows a Unix, když je zpětné lomítko použito jako znak oddělovače cest.
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
Řetězce nulové délky jsou vynechány z kombinované cesty.
Parametry nejsou analyzovány, pokud mají prázdné znaky.
Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou interpretovány jako nepřijatelné metodou Combine
, protože tyto znaky můžete použít pro vyhledávací zástupné znaky. I když například Path.Combine("c:\\", "*.txt")
může být neplatný, pokud jste vytvořili soubor z něj, je platný jako hledaný řetězec. Proto je úspěšně interpretován metodou Combine
.
Viz také
Platí pro
Combine(String, String)
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
Kombinuje dva řetězce do cesty.
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
Parametry
- path1
- String
První cesta ke kombinování.
- path2
- String
Druhá cesta ke kombinování.
Návraty
Kombinované cesty. Pokud jedna ze zadaných cest je řetězec nulové délky, vrátí tato metoda druhou cestu. Pokud path2
obsahuje absolutní cestu, vrátí tato metoda path2
.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: path1
nebo path2
obsahuje jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().
path1
nebo path2
je null
.
Příklady
Následující příklad ukazuje použití Combine
metoda ve 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
Poznámky
Pokud path1
není odkaz na jednotku (tj. "C:" nebo "D:") a nekončí platným znakem oddělovače definovaným v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar se před zřetězením připojí k path1
. Všimněte si, že pokud path1
končí znakem oddělovače cest, který není vhodný pro cílovou platformu, metoda Combine
zachová původní znak oddělovače cesty a připojí podporovaný znak. Následující příklad porovnává výsledek v systémech Windows a Unix, když je zpětné lomítko použito jako znak oddělovače cest.
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
Pokud path2
neobsahuje kořen (například pokud path2
nezačíná znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení dvou cest s znakem oddělovače. Pokud path2
obsahuje kořen, vrátí se path2
.
Parametry nejsou analyzovány, pokud mají prázdné znaky. Proto pokud path2
obsahuje prázdné znaky (například " \file.txt "), metoda Combine připojí path2
k path1
místo vrácení pouze path2
.
Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou interpretovány jako nepřijatelné metodou Combine
, protože tyto znaky můžete použít pro vyhledávací zástupné znaky. I když například Path.Combine("c:\\", "*.txt")
může být neplatný, pokud jste vytvořili soubor z něj, je platný jako hledaný řetězec. Proto je úspěšně interpretován metodou Combine
.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úkoly.
Viz také
- formáty cest k souborům v systémech Windows
- soubor a streamování vstupně-výstupních
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
Combine(String, String, String)
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
Kombinuje tři řetězce do cesty.
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
Parametry
- path1
- String
První cesta ke kombinování.
- path2
- String
Druhá cesta ke kombinování.
- path3
- String
Třetí cesta ke kombinování.
Návraty
Kombinované cesty.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path1
, path2
nebo path3
obsahuje jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().
path1
, path2
nebo path3
je null
.
Příklady
Následující příklad kombinuje tři cesty.
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)
Poznámky
path1
by měla být absolutní cesta (například "d:\archives" nebo "\\archives\public"). Pokud path2
nebo path3
je také absolutní cesta, operace kombinování zahodí všechny dříve kombinované cesty a obnoví se na tuto absolutní cestu.
Řetězce nulové délky jsou vynechány z kombinované cesty.
Pokud path1
nebo path2
není odkaz na jednotku (tj. "C:" nebo "D:") a nekončí platným znakem oddělovače definovaným v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar se před zřetězením připojí k path1
nebo path2
. Všimněte si, že pokud path1
nebo path2
končí znak oddělovače cesty, který není vhodný pro cílovou platformu, metoda Combine
zachová původní znak oddělovače cesty a připojí podporovaný znak. Následující příklad porovnává výsledek v systémech Windows a Unix, když je zpětné lomítko použito jako znak oddělovače cest.
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
Pokud path2
neobsahuje kořen (například pokud path2
nezačíná znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení dvou cest s znakem oddělovače. Pokud path2
obsahuje kořen, vrátí se path2
.
Parametry nejsou analyzovány, pokud mají prázdné znaky. Proto pokud path2
obsahuje prázdné znaky (například " \file.txt "), metoda Combine připojí path2
k path1
.
Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou interpretovány jako nepřijatelné metodou Combine
, protože tyto znaky můžete použít pro vyhledávací zástupné znaky. I když například Path.Combine("c:\\", "*.txt")
může být neplatný, pokud jste vytvořili soubor z něj, je platný jako hledaný řetězec. Proto je úspěšně interpretován metodou Combine
.
Viz také
Platí pro
Combine(String, String, String, String)
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
- Zdroj:
- Path.cs
Kombinuje čtyři řetězce do cesty.
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
Parametry
- path1
- String
První cesta ke kombinování.
- path2
- String
Druhá cesta ke kombinování.
- path3
- String
Třetí cesta ke kombinování.
- path4
- String
Čtvrtá cesta ke kombinování.
Návraty
Kombinované cesty.
Výjimky
Verze rozhraní .NET Framework a .NET Core starší než 2.1: path1
, path2
, path3
nebo path4
obsahují jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().
path1
, path2
, path3
nebo path4
je null
.
Příklady
Následující příklad kombinuje čtyři cesty.
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)
Poznámky
path1
by měla být absolutní cesta (například "d:\archives" nebo "\\archives\public"). Pokud je jedna z následujících cest také absolutní cestou, operace kombinování zahodí všechny dříve kombinované cesty a resetuje se na tuto absolutní cestu.
Řetězce nulové délky jsou vynechány z kombinované cesty.
Pokud path1
, path2
nebo path3
není odkaz na jednotku (tj. "C:" nebo "D:") a nekončí platným znakem oddělovače definovaným v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar se k němu před zřetězením připojí. Všimněte si, že pokud path1
, path2
nebo path3
končí znak oddělovače cesty, který není vhodný pro cílovou platformu, metoda Combine
zachová původní znak oddělovače cesty a připojí podporovaný znak. Následující příklad porovnává výsledek v systémech Windows a Unix, když je zpětné lomítko použito jako znak oddělovače cest.
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\
Pokud path2
neobsahuje kořen (například pokud path2
nezačíná znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení dvou cest s znakem oddělovače. Pokud path2
obsahuje kořen, vrátí se path2
.
Parametry nejsou analyzovány, pokud mají prázdné znaky. Proto pokud path2
obsahuje prázdné znaky (například " \file.txt "), metoda Combine připojí path2
k path1
.
Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou interpretovány jako nepřijatelné metodou Combine
, protože tyto znaky můžete použít pro vyhledávací zástupné znaky. I když například Path.Combine("c:\\", "*.txt")
může být neplatný, pokud jste vytvořili soubor z něj, je platný jako hledaný řetězec. Proto je úspěšně interpretován metodou Combine
.