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 en un chemin d'accès.
Surcharges
Combine(String[]) |
Combine un tableau de chaînes en un chemin d’accès. |
Combine(String, String) |
Combine deux chaînes en un chemin d’accès. |
Combine(String, String, String) |
Combine trois chaînes en un chemin d'accès. |
Combine(String, String, String, String) |
Combine quatre chaînes en 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 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 Combine
méthode , envisagez d’utiliser les Join méthodes ou TryJoin .
Important
Cette méthode suppose que le premier argument est un chemin d’accès absolu et que le ou les arguments suivants sont des chemins relatifs. Si ce n’est pas le cas, et en particulier si les arguments suivants sont des chaînes entrées par l’utilisateur, appelez la méthode ou TryJoin à la Join place.
Combine(String[])
Combine un tableau de chaînes en un 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 d'accès 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 dans un 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 d’accès à combiner. Si l’un des chemins suivants est un chemin d’accès 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 le dernier, n’est pas un lecteur et ne se termine pas par le DirectorySeparatorCharAltDirectorySeparatorChar caractère ou , la Combine
méthode ajoute un DirectorySeparatorChar caractère entre cet élément et le suivant. Notez que, si l’élément se termine par un caractère séparateur de chemin qui n’est pas approprié pour la plateforme cible, la Combine
méthode conserve le caractère séparateur de chemin d’accès d’origine et en ajoute un 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 séparateur de chemin.
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 du chemin combiné.
Les paramètres ne sont pas analysés s’ils ont des espaces blancs.
.NET Framework et .NET Core versions antérieures à 2.1 : la méthode ne permet pas d’interpréter tous les caractères non valides pour les Combine
noms de répertoires et de fichiers, car vous pouvez utiliser ces caractères pour les caractères génériques de recherche. Par exemple, alors que Path.Combine("c:\\", "*.txt")
peut être non valide si vous créez un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Elle est donc correctement interprétée par la Combine
méthode .
Voir aussi
S’applique à
Combine(String, String)
Combine deux chaînes en 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 d'accès à combiner.
- path2
- String
Deuxième chemin d'accès à combiner.
Retours
Chemins d'accès combinés. Si un des chemins d'accès spécifiés est une chaîne de longueur zéro, cette méthode retourne l'autre chemin d'accès. Si path2
contient un chemin d’accès absolu, cette méthode retourne path2
.
Exceptions
.NET Framework et .NET Core versions 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 Combine
méthode 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 (c’est-à-dire , « C: » ou « D: ») et ne se termine pas par un caractère de séparation 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 séparateur de chemin qui n’est pas approprié pour la plateforme cible, la Combine
méthode conserve le caractère séparateur de chemin d’accès d’origine et en ajoute un 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 séparateur de chemin.
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 séparateur 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é.
Les paramètres ne sont pas analysés s’ils ont des espaces blancs. Par conséquent, si path2
inclut des espaces blancs path2
(par exemple, « \file.txt »), la Combine méthode ajoute à path1
au lieu de retourner uniquement path2
.
.NET Framework et .NET Core versions antérieures à 2.1 : la méthode ne permet pas d’interpréter tous les caractères non valides pour les Combine
noms de répertoires et de fichiers, car vous pouvez utiliser ces caractères pour les caractères génériques de recherche. Par exemple, alors que Path.Combine("c:\\", "*.txt")
peut être non valide si vous créez un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Elle est donc correctement interprétée par la Combine
méthode .
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.
Voir aussi
- Formats de chemin de fichier sur les systèmes Windows
- Fichier et flux de données E/S
- Procédure : lire le texte d’un fichier
- Procédure : écrire du texte dans un fichier
S’applique à
Combine(String, String, String)
Combine trois chaînes en 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 d'accès à combiner.
- path2
- String
Deuxième chemin d'accès à combiner.
- path3
- String
Troisième chemin d'accès à combiner.
Retours
Chemins d'accès 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.
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 combiner ignore tous les chemins précédemment combinés et réinitialise à ce chemin absolu.
Les chaînes de longueur nulle sont omises du chemin combiné.
Si path1
ou path2
n’est pas une référence de lecteur (c’est-à-dire , « C: » ou « D: ») et ne se termine pas par un caractère de séparation 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 séparateur de chemin qui n’est pas approprié pour la plateforme cible, la Combine
méthode conserve le caractère séparateur de chemin d’accès d’origine et en ajoute un 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 séparateur de chemin.
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 séparateur 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é.
Les paramètres ne sont pas analysés s’ils ont des espaces blancs. Par conséquent, si path2
inclut des espaces blancs path2
(par exemple, « \file.txt »), la Combine méthode ajoute à path1
.
.NET Framework et .NET Core versions antérieures à 2.1 : la méthode ne permet pas d’interpréter tous les caractères non valides pour les Combine
noms de répertoires et de fichiers, car vous pouvez utiliser ces caractères pour les caractères génériques de recherche. Par exemple, alors que Path.Combine("c:\\", "*.txt")
peut être non valide si vous créez un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Elle est donc correctement interprétée par la Combine
méthode .
Voir aussi
S’applique à
Combine(String, String, String, String)
Combine quatre chaînes en 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 d'accès à combiner.
- path2
- String
Deuxième chemin d'accès à combiner.
- path3
- String
Troisième chemin d'accès à combiner.
- path4
- String
Quatrième chemin d'accès à combiner.
Retours
Chemins d'accès combinés.
Exceptions
.NET Framework et .NET Core versions antérieures à 2.1 : path1
, path2
, path3
ou path4
contient un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().
path1
, path2
, path3
ou path4
a la valeur null
.
Exemples
L’exemple suivant combine quatre chemins.
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 combiner ignore tous les chemins précédemment combinés et réinitialise à ce chemin absolu.
Les chaînes de longueur nulle sont omises du chemin combiné.
Si path1
, path2
ou path3
n’est pas une référence de lecteur (c’est-à-dire , « C: » ou « D: ») et ne se termine pas par un caractère de séparation valide tel que défini dans DirectorySeparatorChar, AltDirectorySeparatorCharou VolumeSeparatorChar, DirectorySeparatorChar y est ajouté avant la concaténation. Notez que si path1
, path2
ou path3
se termine par un caractère séparateur de chemin qui n’est pas approprié pour la plateforme cible, la Combine
méthode conserve le caractère 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 séparateur de chemin.
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 séparateur 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é.
Les paramètres ne sont pas analysés s’ils ont des espaces blancs. Par conséquent, si path2
inclut des espaces blancs path2
(par exemple, « \file.txt »), la Combine méthode ajoute à path1
.
.NET Framework et .NET Core versions antérieures à 2.1 : la méthode ne permet pas d’interpréter tous les caractères non valides pour les Combine
noms de répertoires et de fichiers, car vous pouvez utiliser ces caractères pour les caractères génériques de recherche. Par exemple, alors que Path.Combine("c:\\", "*.txt")
peut être non valide si vous créez un fichier à partir de celui-ci, il est valide en tant que chaîne de recherche. Elle est donc correctement interprétée par la Combine
méthode .