Partager via


Path.Combine Méthode

Définition

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:^*&)(_=@#'\\^&#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

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

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, path2ou path3 contient un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().

path1, path2ou 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, path3ou path4 contiennent un ou plusieurs des caractères non valides définis dans GetInvalidPathChars().

path1, path2, path3ou 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, path2ou 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, path2ou 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.

Voir aussi

S’applique à