Path.Combine Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden tekenreeksen gecombineerd tot een pad.
Overloads
| Name | Description |
|---|---|
| Combine(String[]) |
Combineert een matrix met tekenreeksen in een pad. |
| Combine(String, String) |
Combineert twee tekenreeksen in een pad. |
| Combine(String, String, String) |
Combineert drie tekenreeksen in een pad. |
| Combine(String, String, String, String) |
Hiermee worden vier tekenreeksen gecombineerd tot een pad. |
Opmerkingen
Deze methode is bedoeld om afzonderlijke tekenreeksen samen te voegen in één tekenreeks die een bestandspad vertegenwoordigt. Als echter een ander argument dan de eerste een geroot pad bevat, worden eventuele vorige padonderdelen genegeerd en begint de geretourneerde tekenreeks met dat geroote padonderdeel. Als alternatief voor de methode Combine kunt u overwegen de methoden Join of TryJoin te gebruiken (niet beschikbaar in .NET Framework).
Important
Bij deze methode wordt ervan uitgegaan dat het eerste argument een absoluut pad is en dat het volgende argument of de volgende argumenten relatieve paden zijn. Als dit niet het geval is en met name als volgende argumenten tekenreeksinvoer door de gebruiker zijn, roept u in plaats daarvan de Join of TryJoin methode aan.
Combine(String[])
Combineert een matrix met tekenreeksen in een pad.
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
Parameters
- paths
- String[]
Een matrix met onderdelen van het pad.
Retouren
De gecombineerde paden.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: Een van de tekenreeksen in de matrix bevat een of meer ongeldige tekens die zijn gedefinieerd in GetInvalidPathChars().
Een van de tekenreeksen in de matrix is null.
Voorbeelden
In het volgende voorbeeld wordt een matrix met tekenreeksen gecombineerd tot een pad.
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)
Opmerkingen
paths moet een matrix zijn van de onderdelen van het pad die moeten worden gecombineerd. Als het ene van de volgende paden een absoluut pad is, wordt de combinatiebewerking opnieuw ingesteld vanaf dat absolute pad, waarbij alle vorige gecombineerde paden worden verwijderd.
Als een element in paths maar het laatste element geen station is en niet eindigt met het DirectorySeparatorChar of het AltDirectorySeparatorChar teken, voegt de Combine methode een DirectorySeparatorChar teken toe tussen dat element en de volgende. Als het element eindigt op een padscheidingsteken dat niet geschikt is voor het doelplatform, behoudt de Combine methode het oorspronkelijke padscheidingsteken en voegt een ondersteund teken toe. In het volgende voorbeeld wordt het resultaat vergeleken op Windows- en Unix-systemen wanneer de backslash wordt gebruikt als padscheidingsteken.
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
Tekenreeksen met lengte nul worden weggelaten uit het gecombineerde pad.
De parameters worden niet geparseerd als ze witruimte hebben.
.NET Framework- en .NET Core-versies ouder dan 2.1: Niet alle ongeldige tekens voor map- en bestandsnamen worden geïnterpreteerd als onaanvaardbaar door de methode Combine, omdat u deze tekens kunt gebruiken om jokertekens te zoeken. Het Path.Combine("c:\\", "*.txt") is bijvoorbeeld mogelijk dat het ongeldig is als u er een bestand van maakt, maar het is geldig als een zoekreeks. Het wordt daarom met succes geïnterpreteerd door de Combine methode.
Zie ook
Van toepassing op
Combine(String, String)
Combineert twee tekenreeksen in een pad.
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
Parameters
- path1
- String
Het eerste pad om te combineren.
- path2
- String
Het tweede pad om te combineren.
Retouren
De gecombineerde paden. Als een van de opgegeven paden een tekenreeks met lengte nul is, retourneert deze methode het andere pad. Als path2 dit een absoluut pad bevat, retourneert path2deze methode .
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path1 of path2 bevat een of meer ongeldige tekens die zijn gedefinieerd in GetInvalidPathChars().
path1 of path2 is null.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de methode Combine op Windows gebruikt.
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
Opmerkingen
Als path1 dit geen stationsreferentie is (d.w.v. 'C:' of 'D:') en niet eindigt met een geldig scheidingsteken zoals gedefinieerd in DirectorySeparatorChar, AltDirectorySeparatorCharof VolumeSeparatorChar, DirectorySeparatorChar wordt toegevoegd voordat path1 de samenvoeging plaatsvindt.
path1 Als het padscheidingsteken eindigt dat niet geschikt is voor het doelplatform, behoudt de Combine methode het oorspronkelijke padscheidingsteken en voegt een ondersteund teken toe. In het volgende voorbeeld wordt het resultaat vergeleken op Windows- en Unix-systemen wanneer de backslash wordt gebruikt als padscheidingsteken.
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
Als path2 er geen hoofdmap is opgenomen (bijvoorbeeld als path2 het niet begint met een scheidingsteken of een stationsspecificatie), is het resultaat een samenvoeging van de twee paden, met een tussenliggend scheidingsteken. Als path2 er een hoofdmap is opgenomen, path2 wordt deze geretourneerd.
De parameters worden niet geparseerd als ze witruimte hebben.
path2 Als er dus witruimte is opgenomen (bijvoorbeeld " \file.txt "), wordt de Combine methode toegevoegd path2 aan path1 in plaats van alleen path2te retourneren.
.NET Framework- en .NET Core-versies ouder dan 2.1: Niet alle ongeldige tekens voor map- en bestandsnamen worden geïnterpreteerd als onaanvaardbaar door de methode Combine, omdat u deze tekens kunt gebruiken om jokertekens te zoeken. Het Path.Combine("c:\\", "*.txt") is bijvoorbeeld mogelijk dat het ongeldig is als u er een bestand van maakt, maar het is geldig als een zoekreeks. Het wordt daarom met succes geïnterpreteerd door de Combine methode.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Zie ook
- Bestandspadindelingen op Windows systemen
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
Combine(String, String, String)
Combineert drie tekenreeksen in een pad.
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
Parameters
- path1
- String
Het eerste pad om te combineren.
- path2
- String
Het tweede pad om te combineren.
- path3
- String
Het derde pad dat moet worden gecombineerd.
Retouren
De gecombineerde paden.
Uitzonderingen
.NET Framework- en .NET Core-versies ouder dan 2.1: path1, path2 of path3 bevat een of meer ongeldige tekens die zijn gedefinieerd in GetInvalidPathChars().
path1, path2of path3 is null.
Voorbeelden
In het volgende voorbeeld worden drie paden gecombineerd.
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)
Opmerkingen
path1 moet een absoluut pad zijn (bijvoorbeeld 'd:\archives' of '\\archives\public'). Als path2 of path3 ook een absoluut pad is, worden met de combinatiebewerking alle eerder gecombineerde paden verwijderd en opnieuw ingesteld op dat absolute pad.
Tekenreeksen met lengte nul worden weggelaten uit het gecombineerde pad.
Als path1 of path2 geen stationsreferentie is (D:of C:) en niet eindigt met een geldig scheidingsteken zoals gedefinieerd in DirectorySeparatorChar, AltDirectorySeparatorCharof , of VolumeSeparatorChar, DirectorySeparatorChar wordt toegevoegd aan path1 of path2 vóór de samenvoeging. Houd er rekening mee dat als path1 of path2 eindigt op een padscheidingsteken dat niet geschikt is voor het doelplatform, de Combine methode het oorspronkelijke padscheidingsteken behoudt en een ondersteund teken toevoegt. In het volgende voorbeeld wordt het resultaat vergeleken op Windows- en Unix-systemen wanneer de backslash wordt gebruikt als padscheidingsteken.
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
Als path2 er geen hoofdmap is opgenomen (bijvoorbeeld als path2 het niet begint met een scheidingsteken of een stationsspecificatie), is het resultaat een samenvoeging van de twee paden, met een tussenliggend scheidingsteken. Als path2 er een hoofdmap is opgenomen, path2 wordt deze geretourneerd.
De parameters worden niet geparseerd als ze witruimte hebben.
path2 Als er dus witruimte is opgenomen (bijvoorbeeld " \file.txt "), wordt de Combine methode toegevoegd path2 aan path1.
.NET Framework- en .NET Core-versies ouder dan 2.1: Niet alle ongeldige tekens voor map- en bestandsnamen worden geïnterpreteerd als onaanvaardbaar door de methode Combine, omdat u deze tekens kunt gebruiken om jokertekens te zoeken. Het Path.Combine("c:\\", "*.txt") is bijvoorbeeld mogelijk dat het ongeldig is als u er een bestand van maakt, maar het is geldig als een zoekreeks. Het wordt daarom met succes geïnterpreteerd door de Combine methode.
Zie ook
Van toepassing op
Combine(String, String, String, String)
Hiermee worden vier tekenreeksen gecombineerd tot een pad.
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
Parameters
- path1
- String
Het eerste pad om te combineren.
- path2
- String
Het tweede pad om te combineren.
- path3
- String
Het derde pad dat moet worden gecombineerd.
- path4
- String
Het vierde pad om te combineren.
Retouren
De gecombineerde paden.
Uitzonderingen
.NET Framework- en .NET Core-versies ouder dan 2.1: path1, path2, path3 of path4 bevat een of meer ongeldige tekens die zijn gedefinieerd in GetInvalidPathChars().
path1, path2, path3of path4 is null.
Voorbeelden
In het volgende voorbeeld worden vier paden gecombineerd.
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)
Opmerkingen
path1 moet een absoluut pad zijn (bijvoorbeeld 'd:\archives' of '\\archives\public'). Als een van de volgende paden ook een absoluut pad is, worden met de combinatiebewerking alle eerder gecombineerde paden verwijderd en opnieuw ingesteld op dat absolute pad.
Tekenreeksen met lengte nul worden weggelaten uit het gecombineerde pad.
Als path1, path2of path3 is geen stationsreferentie (dat wil gezegd C:" of "D:") en eindigt niet met een geldig scheidingsteken zoals gedefinieerd in DirectorySeparatorChar, AltDirectorySeparatorCharof , of VolumeSeparatorChar, DirectorySeparatorChar wordt toegevoegd vóór de samenvoeging. Houd er rekening mee dat als path1, path2of path3 eindigt op een padscheidingsteken dat niet geschikt is voor het doelplatform, de Combine methode het oorspronkelijke padscheidingsteken behoudt en een ondersteund teken toevoegt. In het volgende voorbeeld wordt het resultaat vergeleken op Windows- en Unix-systemen wanneer de backslash wordt gebruikt als padscheidingsteken.
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\
Als path2 er geen hoofdmap is opgenomen (bijvoorbeeld als path2 het niet begint met een scheidingsteken of een stationsspecificatie), is het resultaat een samenvoeging van de twee paden, met een tussenliggend scheidingsteken. Als path2 er een hoofdmap is opgenomen, path2 wordt deze geretourneerd.
De parameters worden niet geparseerd als ze witruimte hebben.
path2 Als er dus witruimte is opgenomen (bijvoorbeeld " \file.txt "), wordt de Combine methode toegevoegd path2 aan path1.
.NET Framework- en .NET Core-versies ouder dan 2.1: Niet alle ongeldige tekens voor map- en bestandsnamen worden geïnterpreteerd als onaanvaardbaar door de methode Combine, omdat u deze tekens kunt gebruiken om jokertekens te zoeken. Het Path.Combine("c:\\", "*.txt") is bijvoorbeeld mogelijk dat het ongeldig is als u er een bestand van maakt, maar het is geldig als een zoekreeks. Het wordt daarom met succes geïnterpreteerd door de Combine methode.