Path.Combine Metod

Definition

Kombinerar strängar till en sökväg.

Överlagringar

Name Description
Combine(String[])

Kombinerar en matris med strängar till en sökväg.

Combine(String, String)

Kombinerar två strängar till en sökväg.

Combine(String, String, String)

Kombinerar tre strängar i en sökväg.

Combine(String, String, String, String)

Kombinerar fyra strängar i en sökväg.

Kommentarer

Den här metoden är avsedd att sammanfoga enskilda strängar till en enda sträng som representerar en filsökväg. Men om ett annat argument än det första innehåller en rotad sökväg ignoreras eventuella tidigare sökvägskomponenter och den returnerade strängen börjar med den rotade sökvägskomponenten. Som ett alternativ till metoden Combine bör du överväga att använda metoderna Join eller TryJoin (inte tillgängligt i .NET Framework).

Important

Den här metoden förutsätter att det första argumentet är en absolut sökväg och att följande argument är relativa sökvägar. Om så inte är fallet, och särskilt om efterföljande argument är strängar som användaren anger, anropar Join du metoden eller TryJoin i stället.

Combine(String[])

Kombinerar en matris med strängar till en sökväg.

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

Parametrar

paths
String[]

En matris med delar av sökvägen.

Returer

De kombinerade sökvägarna.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: En av strängarna i matrisen innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

En av strängarna i matrisen är null.

Exempel

I följande exempel kombineras en matris med strängar till en sökväg.

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)

Kommentarer

paths ska vara en matris med de delar av sökvägen som ska kombineras. Om den efterföljande sökvägen är en absolut sökväg återställs kombinationsåtgärden från och med den absoluta sökvägen och tar bort alla tidigare kombinerade sökvägar.

Om något element i paths men det sista inte är en enhet och inte slutar med DirectorySeparatorChar tecknet eller AltDirectorySeparatorChar lägger Combine metoden till ett DirectorySeparatorChar tecken mellan elementet och nästa. Observera att om elementet slutar med ett sökvägsavgränsartecken som inte är lämpligt för målplattformen Combine bevarar metoden det ursprungliga sökvägsavgränsartecknet och lägger till ett som stöds. I följande exempel jämförs resultatet på Windows- och Unix-baserade system när omvänt snedstreck används som sökvägsavgränsare.

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

Strängar med noll längd utelämnas från den kombinerade sökvägen.

Parametrarna parsas inte om de har tomt utrymme.

.NET Framework- och .NET Core-versioner som är äldre än 2.1: Alla ogiltiga tecken för katalog- och filnamn tolkas inte som oacceptabla av metoden Combine eftersom du kan använda dessa tecken för jokertecken. Även om Path.Combine("c:\\", "*.txt") det till exempel kan vara ogiltigt om du skulle skapa en fil från den, är den giltig som en söksträng. Det tolkas därför korrekt av Combine metoden.

Se även

Gäller för

Combine(String, String)

Kombinerar två strängar till en sökväg.

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

Parametrar

path1
String

Den första sökvägen att kombinera.

path2
String

Den andra sökvägen att kombinera.

Returer

De kombinerade sökvägarna. Om en av de angivna sökvägarna är en sträng med noll längd returnerar den här metoden den andra sökvägen. Om path2 innehåller en absolut sökväg returnerar path2den här metoden .

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: path1 eller path2 innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

path1 eller path2 är null.

Exempel

I följande exempel visas hur du använder metoden Combine på 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:^*&)(_=@#'\\^&#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

Kommentarer

Om path1 inte är en enhetsreferens (dvs. "C:" eller "D:") och inte slutar med ett giltigt avgränsartecken enligt definitionen i DirectorySeparatorChar, AltDirectorySeparatorChareller VolumeSeparatorChar, DirectorySeparatorChar läggs till path1 före sammanfogning. Observera att om path1 det slutar med ett sökvägsavgränsartecken som inte är lämpligt för målplattformen Combine bevarar metoden det ursprungliga sökvägsavgränsartecknet och lägger till ett som stöds. I följande exempel jämförs resultatet på Windows- och Unix-baserade system när omvänt snedstreck används som sökvägsavgränsare.

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

Om path2 inte innehåller en rot (till exempel om path2 inte börjar med ett avgränsartecken eller en enhetsspecifikation) blir resultatet en sammanlänkning av de två sökvägarna med ett mellanliggande avgränsartecken. Om path2 innehåller en rot path2 returneras.

Parametrarna parsas inte om de har tomt utrymme. path2 Om innehåller blanksteg (till exempel " \file.txt "), Combine lägger path2 metoden till path1 i stället för att bara path2returnera .

.NET Framework- och .NET Core-versioner som är äldre än 2.1: Alla ogiltiga tecken för katalog- och filnamn tolkas inte som oacceptabla av metoden Combine eftersom du kan använda dessa tecken för jokertecken. Även om Path.Combine("c:\\", "*.txt") det till exempel kan vara ogiltigt om du skulle skapa en fil från den, är den giltig som en söksträng. Det tolkas därför korrekt av Combine metoden.

En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.

Se även

Gäller för

Combine(String, String, String)

Kombinerar tre strängar i en sökväg.

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

Parametrar

path1
String

Den första sökvägen att kombinera.

path2
String

Den andra sökvägen att kombinera.

path3
String

Den tredje sökvägen att kombinera.

Returer

De kombinerade sökvägarna.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: path1, path2 eller path3 innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

path1, path2, eller path3 är null.

Exempel

I följande exempel kombineras tre sökvägar.

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)

Kommentarer

path1 bör vara en absolut sökväg (till exempel "d:\archives" eller "\\archives\public"). Om path2 eller path3 också är en absolut sökväg tar kombinationsåtgärden bort alla tidigare kombinerade sökvägar och återställer till den absoluta sökvägen.

Strängar med noll längd utelämnas från den kombinerade sökvägen.

Om path1 eller path2 inte är en enhetsreferens (dvs. "C:" eller "D:") och inte slutar med ett giltigt avgränsartecken enligt definitionen i DirectorySeparatorChar, AltDirectorySeparatorChareller VolumeSeparatorChar, DirectorySeparatorChar läggs till path1 i eller path2 före sammanfogning. Observera att om path1 eller path2 slutar med ett sökvägsavgränsartecken som inte är lämpligt för målplattformen Combine bevarar metoden det ursprungliga sökvägsavgränsartecknet och lägger till ett som stöds. I följande exempel jämförs resultatet på Windows- och Unix-baserade system när omvänt snedstreck används som sökvägsavgränsare.

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

Om path2 inte innehåller en rot (till exempel om path2 inte börjar med ett avgränsartecken eller en enhetsspecifikation) blir resultatet en sammanlänkning av de två sökvägarna med ett mellanliggande avgränsartecken. Om path2 innehåller en rot path2 returneras.

Parametrarna parsas inte om de har tomt utrymme. path2 Om innehåller blanksteg (till exempel " \file.txt "), Combine lägger path2 metoden till i path1.

.NET Framework- och .NET Core-versioner som är äldre än 2.1: Alla ogiltiga tecken för katalog- och filnamn tolkas inte som oacceptabla av metoden Combine eftersom du kan använda dessa tecken för jokertecken. Även om Path.Combine("c:\\", "*.txt") det till exempel kan vara ogiltigt om du skulle skapa en fil från den, är den giltig som en söksträng. Det tolkas därför korrekt av Combine metoden.

Se även

Gäller för

Combine(String, String, String, String)

Kombinerar fyra strängar i en sökväg.

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

Parametrar

path1
String

Den första sökvägen att kombinera.

path2
String

Den andra sökvägen att kombinera.

path3
String

Den tredje sökvägen att kombinera.

path4
String

Den fjärde sökvägen att kombinera.

Returer

De kombinerade sökvägarna.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: path1, path2, path3 eller path4 innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

path1, path2, path3, eller path4 är null.

Exempel

I följande exempel kombineras fyra sökvägar.

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)

Kommentarer

path1 bör vara en absolut sökväg (till exempel "d:\archives" eller "\\archives\public"). Om en av de efterföljande sökvägarna också är en absolut sökväg tar kombinationsåtgärden bort alla tidigare kombinerade sökvägar och återställer till den absoluta sökvägen.

Strängar med noll längd utelämnas från den kombinerade sökvägen.

Om path1, path2, eller path3 inte är en enhetsreferens (d.v.s. "C:" eller "D:") och inte slutar med ett giltigt avgränsartecken enligt definitionen i DirectorySeparatorChar, AltDirectorySeparatorChareller VolumeSeparatorChar, DirectorySeparatorChar läggs det till före sammanfogning. Observera att om path1, path2eller path3 slutar med ett sökvägsavgränsartecken som inte är lämpligt för målplattformen Combine bevarar metoden det ursprungliga sökvägsavgränsartecknet och lägger till ett som stöds. I följande exempel jämförs resultatet på Windows- och Unix-baserade system när omvänt snedstreck används som sökvägsavgränsare.

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\

Om path2 inte innehåller en rot (till exempel om path2 inte börjar med ett avgränsartecken eller en enhetsspecifikation) blir resultatet en sammanlänkning av de två sökvägarna med ett mellanliggande avgränsartecken. Om path2 innehåller en rot path2 returneras.

Parametrarna parsas inte om de har tomt utrymme. path2 Om innehåller blanksteg (till exempel " \file.txt "), Combine lägger path2 metoden till i path1.

.NET Framework- och .NET Core-versioner som är äldre än 2.1: Alla ogiltiga tecken för katalog- och filnamn tolkas inte som oacceptabla av metoden Combine eftersom du kan använda dessa tecken för jokertecken. Även om Path.Combine("c:\\", "*.txt") det till exempel kan vara ogiltigt om du skulle skapa en fil från den, är den giltig som en söksträng. Det tolkas därför korrekt av Combine metoden.

Se även

Gäller för