Path.Combine Metoda

Definice

Kombinuje řetězce do cesty.

Přetížení

Combine(String[])

Kombinuje pole řetězců do cesty.

Combine(String, String)

Zkombinuje dva řetězce do cesty.

Combine(String, String, String)

Kombinuje tři řetězce do cesty.

Combine(String, String, String, String)

Zkombinuje č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í komponenty cesty jsou ignorovány a vrácený řetězec začíná touto kořenovou součástí cesty. Jako alternativu Combine k metodě zvažte použití Join metod nebo TryJoin .

Důležité

Tato metoda předpokládá, že první argument je absolutní cesta a že následující argumenty nebo argumenty jsou relativní cesty. Pokud tomu tak není, a zejména pokud některé další argumenty jsou řetězcové vstupy uživatelem, volejte místo toho metodu Join nebo TryJoin .

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

.NET Framework a .NET Core verze 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ělo být pole částí cesty, které se mají zkombinovat. Pokud je jedna z následujících cest absolutní cesta, operace kombinování začne touto absolutní cestou a zahodí všechny předchozí kombinované cesty.

Pokud některý prvek v paths kromě poslední není jednotka a nekončí znakem DirectorySeparatorChar nebo AltDirectorySeparatorChar , Combine metoda přidá DirectorySeparatorChar znak mezi tento prvek a další. Všimněte si, že pokud prvek končí znakem oddělovače cesty, který není vhodný pro cílovou platformu Combine , metoda 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ž zpětné lomítko je použito jako znak oddělovače cesty.

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 z kombinované cesty vynechány.

Parametry se neanalyšují, pokud obsahují 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 metodou Combine interpretovány jako nepřijatelné, protože tyto znaky můžete použít pro vyhledávání zástupných znaků. I když Path.Combine("c:\\", "*.txt") může být například neplatný, pokud byste z něj vytvořili soubor, 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

Zkombinuje 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, která se má zkombinovat.

path2
String

Druhá cesta, která se má zkombinovat.

Návraty

Kombinované cesty. Pokud je jedna ze zadaných cest řetězec nulové délky, vrátí tato metoda druhou cestu. Pokud path2 obsahuje absolutní cestu, vrátí path2tato metoda .

Výjimky

Verze .NET Framework a .NET Core starší než 2.1: path1 nebo path2 obsahují 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í metody ve Combine 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:^*&)(_=@#'\\^&#2.*(.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:^*&)(_=@#'\\^&#2.*(.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:^*&)(_=@#'\^&#2.*(.txt' and 'subdir\file.txt', the result is:
// 'c:^*&)(_=@#'\^&#2.*(.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:^*&)(_=@#'\\^&#2.*(.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:^*&)(_=@#'\^&#2.*(.txt' and 'subdir\file.txt', the result is: 
' 'c:^*&)(_=@#'\^&#2.*(.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, jak je definován v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar se před zřetězení připojí k path1 . Všimněte si, že pokud path1 končí znakem oddělovače cesty, který není vhodný pro cílovou platformu Combine , metoda 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ž zpětné lomítko je použito jako znak oddělovače cesty.

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 nezačíná path2 znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení obou cest se znakem intervenujícího oddělovače. Pokud path2 obsahuje kořen, path2 vrátí se .

Parametry se neanalyšují, pokud obsahují prázdné znaky. Proto pokud path2 obsahuje prázdné znaky (například " \file.txt "), Combine metoda místo vrácení pouze path2připojí path2path1 k .

Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou metodou Combine interpretovány jako nepřijatelné, protože tyto znaky můžete použít pro vyhledávání zástupných znaků. I když Path.Combine("c:\\", "*.txt") může být například neplatný, pokud byste z něj vytvořili soubor, 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í úlohy.

Viz také

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, která se má zkombinovat.

path2
String

Druhá cesta, která se má zkombinovat.

path3
String

Třetí cesta, která se má zkombinovat.

Návraty

Kombinované cesty.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path1, path2nebo path3 obsahují jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().

path1, path2nebo 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 musí být absolutní cesta (například "d:\archives" nebo "\\archives\public"). Pokud path2 je nebo path3 také absolutní cesta, operace kombinování zahodí všechny dříve zkombinované cesty a obnoví tuto absolutní cestu.

Řetězce nulové délky jsou z kombinované cesty vynechány.

Pokud path1 nebo path2 není odkaz na jednotku (tj. "C:" nebo "D:") a nekončí platným znakem oddělovače, jak je definován v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar je připojen k path1 nebo path2 před zřetězení. Všimněte si, že pokud path1 nebo path2 končí znakem oddělovače cesty, který není vhodný pro cílovou platformu Combine , metoda 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ž zpětné lomítko je použito jako znak oddělovače cesty.

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 nezačíná path2 znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení obou cest se znakem intervenujícího oddělovače. Pokud path2 obsahuje kořen, path2 vrátí se .

Parametry se neanalyšují, pokud obsahují prázdné znaky. Proto pokud path2 obsahuje prázdné znaky (například " \file.txt "), Combine připojí path2 metoda k path1.

Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou metodou Combine interpretovány jako nepřijatelné, protože tyto znaky můžete použít pro vyhledávání zástupných znaků. I když Path.Combine("c:\\", "*.txt") může být například neplatný, pokud byste z něj vytvořili soubor, 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

Zkombinuje č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, která se má zkombinovat.

path2
String

Druhá cesta, která se má zkombinovat.

path3
String

Třetí cesta, která se má zkombinovat.

path4
String

Čtvrtá cesta, která se má zkombinovat.

Návraty

Kombinované cesty.

Výjimky

Verze .NET Framework a .NET Core starší než 2.1: path1, path2, path3nebo path4 obsahují jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().

path1, path2, path3nebo 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 musí 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 zkombinované cesty a obnoví tuto absolutní cestu.

Řetězce nulové délky jsou z kombinované cesty vynechány.

Pokud path1, path2nebo path3 není odkaz na jednotku (tj. "C:" nebo "D:") a nekončí platným znakem oddělovače, jak je definován v DirectorySeparatorChar, AltDirectorySeparatorCharnebo VolumeSeparatorChar, DirectorySeparatorChar připojí se k němu před zřetězením. Všimněte si, že pokud path1, path2nebo path3 končí znakem oddělovače cesty, který není vhodný pro cílovou platformu, Combine metoda 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ž zpětné lomítko je použito jako znak oddělovače cesty.

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 nezačíná path2 znakem oddělovače nebo specifikací jednotky), výsledkem je zřetězení obou cest se znakem intervenujícího oddělovače. Pokud path2 obsahuje kořen, path2 vrátí se .

Parametry se neanalyšují, pokud obsahují prázdné znaky. Proto pokud path2 obsahuje prázdné znaky (například " \file.txt "), Combine připojí path2 metoda k path1.

Verze .NET Framework a .NET Core starší než 2.1: Ne všechny neplatné znaky pro názvy adresářů a souborů jsou metodou Combine interpretovány jako nepřijatelné, protože tyto znaky můžete použít pro vyhledávání zástupných znaků. I když Path.Combine("c:\\", "*.txt") může být například neplatný, pokud byste z něj vytvořili soubor, je platný jako hledaný řetězec. Proto je úspěšně interpretován metodou .Combine

Viz také

Platí pro