Path.Combine Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Combine des chaînes dans un chemin d’accès.
Surcharges
Combine(ReadOnlySpan<String>) |
Combine une étendue de chaînes dans un chemin d’accès. |
Combine(String[]) |
Combine un tableau de chaînes en chemin d’accès. |
Combine(String, String) |
Combine deux chaînes dans un chemin d’accès. |
Combine(String, String, String) |
Combine trois chaînes dans un chemin d’accès. |
Combine(String, String, String, String) |
Combine quatre chaînes dans un chemin d’accès. |
Remarques
Cette méthode est destinée à concaténer des chaînes individuelles en une seule chaîne qui représente un chemin d’accès de fichier. Toutefois, si un argument autre que le premier contient un chemin d’accès rooté, tous les composants de chemin d’accès précédents sont ignorés et la chaîne retournée commence par ce composant de chemin rooté. En guise d’alternative à la méthode Combine
, envisagez d’utiliser les méthodes Join ou TryJoin.
Important
Cette méthode suppose que le premier argument est un chemin d’accès absolu et que l’argument ou les arguments suivants sont des chemins relatifs. Si ce n’est pas le cas, et en particulier si des arguments suivants sont des chaînes entrées par l’utilisateur, appelez la méthode Join ou TryJoin à la place.
Combine(ReadOnlySpan<String>)
Combine une étendue de chaînes dans un chemin d’accès.
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
Paramètres
- paths
- ReadOnlySpan<String>
Étendue de parties du chemin d’accès.
Retours
Chemins combinés.
S’applique à
Combine(String[])
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
Combine un tableau de chaînes en chemin d’accès.
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
Paramètres
- paths
- String[]
Tableau de parties du chemin d’accès.
Retours
Chemins combinés.
Exceptions
.NET Framework et .NET Core versions antérieures à 2.1 : l’une des chaînes du tableau contient un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().
L’une des chaînes du tableau est null
.
Exemples
L’exemple suivant combine un tableau de chaînes en chemin d’accès.
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)
Remarques
paths
doit être un tableau des parties du chemin à combiner. Si l’un des chemins suivants est un chemin absolu, l’opération de combinaison est réinitialisée à partir de ce chemin absolu, en ignorant tous les chemins combinés précédents.
Si un élément dans paths
mais que le dernier n’est pas un lecteur et ne se termine pas par le DirectorySeparatorChar ou le caractère AltDirectorySeparatorChar, la méthode Combine
ajoute un caractère DirectorySeparatorChar entre cet élément et le caractère suivant. Notez que, si l’élément se termine par un caractère de séparateur de chemin qui n’est pas approprié pour la plateforme cible, la méthode Combine
conserve le caractère de séparateur de chemin d’accès d’origine et ajoute un caractère pris en charge. L’exemple suivant compare le résultat sur les systèmes Windows et Unix lorsque la barre oblique inverse est utilisée comme caractère de séparateur de chemin d’accès.
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
Les chaînes de longueur nulle sont omises à partir du chemin combiné.
Les paramètres ne sont pas analysés s’ils ont un espace blanc.
Versions .NET Framework et .NET Core antérieures à 2.1 : Tous les caractères non valides pour les noms de répertoire et de fichiers ne sont pas interprétés comme inacceptables par la méthode Combine
, car vous pouvez utiliser ces caractères pour rechercher des caractères génériques. Par exemple, bien que Path.Combine("c:\\", "*.txt")
ne soit pas valide si vous deviez créer un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Il est donc interprété avec succès par la méthode Combine
.
Voir aussi
S’applique à
Combine(String, String)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
Combine deux chaînes dans un chemin d’accès.
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
Paramètres
- path1
- String
Premier chemin à combiner.
- path2
- String
Deuxième chemin à combiner.
Retours
Chemins combinés. Si l’un des chemins spécifiés est une chaîne de longueur nulle, cette méthode retourne l’autre chemin. Si path2
contient un chemin absolu, cette méthode retourne path2
.
Exceptions
.NET Framework et les versions .NET Core antérieures à 2.1 : path1
ou path2
contient un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().
path1
ou path2
est null
.
Exemples
L’exemple suivant illustre l’utilisation de la méthode Combine
sur 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
Remarques
Si path1
n’est pas une référence de lecteur (autrement dit, « C : » ou « D : ») et ne se termine pas par un caractère de séparateur valide tel que défini dans DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar est ajouté à path1
avant la concaténation. Notez que si path1
se termine par un caractère de séparateur de chemin qui n’est pas approprié pour la plateforme cible, la méthode Combine
conserve le caractère de séparateur de chemin d’accès d’origine et ajoute un caractère pris en charge. L’exemple suivant compare le résultat sur les systèmes Windows et Unix lorsque la barre oblique inverse est utilisée comme caractère de séparateur de chemin d’accès.
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
Si path2
n’inclut pas de racine (par exemple, si path2
ne commence pas par un caractère de séparation ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère de séparation intermédiaire. Si path2
inclut une racine, path2
est retournée.
Les paramètres ne sont pas analysés s’ils ont un espace blanc. Par conséquent, si path2
inclut un espace blanc (par exemple, « \file.txt »), la méthode Combine ajoute path2
à path1
au lieu de retourner uniquement path2
.
Versions .NET Framework et .NET Core antérieures à 2.1 : Tous les caractères non valides pour les noms de répertoire et de fichiers ne sont pas interprétés comme inacceptables par la méthode Combine
, car vous pouvez utiliser ces caractères pour rechercher des caractères génériques. Par exemple, bien que Path.Combine("c:\\", "*.txt")
ne soit pas valide si vous deviez créer un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Il est donc interprété avec succès par la méthode Combine
.
Pour obtenir la liste des tâches d’E/S courantes, consultez tâches d’E/S courantes.
Voir aussi
- formats de chemin de fichier sur les systèmes Windows
- fichier et flux d’E/S
- Guide pratique pour lire du texte à partir d’un fichier
- Comment : écrire du texte dans un fichier
S’applique à
Combine(String, String, String)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
Combine trois chaînes dans un chemin d’accès.
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
Paramètres
- path1
- String
Premier chemin à combiner.
- path2
- String
Deuxième chemin à combiner.
- path3
- String
Troisième chemin à combiner.
Retours
Chemins combinés.
Exceptions
.NET Framework et .NET Core versions antérieures à 2.1 : path1
, path2
ou path3
contient un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().
path1
, path2
ou path3
est null
.
Exemples
L’exemple suivant combine trois chemins d’accès.
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)
Remarques
path1
doit être un chemin absolu (par exemple, « d :\archives » ou « \\archives\public »). Si path2
ou path3
est également un chemin absolu, l’opération de combinaison ignore tous les chemins combinés précédemment et réinitialise ce chemin absolu.
Les chaînes de longueur nulle sont omises à partir du chemin combiné.
Si path1
ou path2
n’est pas une référence de lecteur (autrement dit, « C : » ou « D : ») et ne se termine pas par un caractère de séparateur valide tel que défini dans DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar est ajouté à path1
ou path2
avant la concaténation. Notez que si path1
ou path2
se termine par un caractère de séparateur de chemin qui n’est pas approprié pour la plateforme cible, la méthode Combine
conserve le caractère de séparateur de chemin d’origine et ajoute un caractère pris en charge. L’exemple suivant compare le résultat sur les systèmes Windows et Unix lorsque la barre oblique inverse est utilisée comme caractère de séparateur de chemin d’accès.
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
Si path2
n’inclut pas de racine (par exemple, si path2
ne commence pas par un caractère de séparation ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère de séparation intermédiaire. Si path2
inclut une racine, path2
est retournée.
Les paramètres ne sont pas analysés s’ils ont un espace blanc. Par conséquent, si path2
inclut des espaces blancs (par exemple, « \file.txt »), la méthode Combine ajoute path2
à path1
.
Versions .NET Framework et .NET Core antérieures à 2.1 : Tous les caractères non valides pour les noms de répertoire et de fichiers ne sont pas interprétés comme inacceptables par la méthode Combine
, car vous pouvez utiliser ces caractères pour rechercher des caractères génériques. Par exemple, bien que Path.Combine("c:\\", "*.txt")
ne soit pas valide si vous deviez créer un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Il est donc interprété avec succès par la méthode Combine
.
Voir aussi
S’applique à
Combine(String, String, String, String)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
Combine quatre chaînes dans un chemin d’accès.
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
Paramètres
- path1
- String
Premier chemin à combiner.
- path2
- String
Deuxième chemin à combiner.
- path3
- String
Troisième chemin à combiner.
- path4
- String
Quatrième chemin à combiner.
Retours
Chemins combinés.
Exceptions
Les versions .NET Framework et .NET Core antérieures à 2.1 : path1
, path2
, path3
ou path4
contiennent un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().
path1
, path2
, path3
ou path4
est null
.
Exemples
L’exemple suivant combine quatre chemins d’accès.
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)
Remarques
path1
doit être un chemin absolu (par exemple, « d :\archives » ou « \\archives\public »). Si l’un des chemins suivants est également un chemin absolu, l’opération de combinaison ignore tous les chemins combinés précédemment et réinitialise ce chemin absolu.
Les chaînes de longueur nulle sont omises à partir du chemin combiné.
Si path1
, path2
ou path3
n’est pas une référence de lecteur (autrement dit, « C : » ou « D : ») et ne se termine pas par un caractère de séparateur valide tel que défini dans DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar est ajouté à celui-ci avant la concaténation. Notez que si path1
, path2
ou path3
se termine par un caractère de séparateur de chemin qui n’est pas approprié pour la plateforme cible, la méthode Combine
conserve le caractère de séparateur de chemin d’accès d’origine et ajoute un caractère pris en charge. L’exemple suivant compare le résultat sur les systèmes Windows et Unix lorsque la barre oblique inverse est utilisée comme caractère de séparateur de chemin d’accès.
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\
Si path2
n’inclut pas de racine (par exemple, si path2
ne commence pas par un caractère de séparation ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère de séparation intermédiaire. Si path2
inclut une racine, path2
est retournée.
Les paramètres ne sont pas analysés s’ils ont un espace blanc. Par conséquent, si path2
inclut des espaces blancs (par exemple, « \file.txt »), la méthode Combine ajoute path2
à path1
.
Versions .NET Framework et .NET Core antérieures à 2.1 : Tous les caractères non valides pour les noms de répertoire et de fichiers ne sont pas interprétés comme inacceptables par la méthode Combine
, car vous pouvez utiliser ces caractères pour rechercher des caractères génériques. Par exemple, bien que Path.Combine("c:\\", "*.txt")
ne soit pas valide si vous deviez créer un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Il est donc interprété avec succès par la méthode Combine
.