Path.Combine Metodo

Definizione

Combina stringhe in un percorso.

Overload

Combine(String[])

Combina una matrice di stringhe in un percorso.

Combine(String, String)

Combina due stringhe in un percorso.

Combine(String, String, String)

Combina tre stringhe in un percorso.

Combine(String, String, String, String)

Combina quattro stringhe in un percorso.

Commenti

Questo metodo è destinato a concatenare singole stringhe in una singola stringa che rappresenta un percorso file. Tuttavia, se un argomento diverso dal primo contiene un percorso root, tutti i componenti del percorso precedenti vengono ignorati e la stringa restituita inizia con tale componente del percorso radice. In alternativa al metodo, prendere in considerazione l'uso Combine dei Join metodi o TryJoin .

Importante

Questo metodo presuppone che il primo argomento sia un percorso assoluto e che gli argomenti o gli argomenti seguenti siano percorsi relativi. Se questo non è il caso e, in particolare, se gli argomenti successivi sono stringhe di input dall'utente, chiamare invece il Join metodo o TryJoin .

Combine(String[])

Source:
Path.cs
Source:
Path.cs
Source:
Path.cs

Combina una matrice di stringhe in un percorso.

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

Parametri

paths
String[]

Matrice di parti del percorso.

Restituisce

Percorsi combinati.

Eccezioni

.NET Framework e versioni di .NET Core precedenti a 2.1: una delle stringhe nella matrice contiene uno o più caratteri non validi definiti in GetInvalidPathChars().

Una delle stringhe nella matrice è null.

Esempio

Nell'esempio seguente viene combinata una matrice di stringhe in un percorso.

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)

Commenti

paths deve essere una matrice delle parti del percorso da combinare. Se uno dei percorsi successivi è un percorso assoluto, l'operazione di combinazione reimposta a partire da quel percorso assoluto, rimuovendo tutti i percorsi combinati precedenti.

Se qualsiasi elemento in paths ma l'ultimo non è un'unità e non termina con DirectorySeparatorChar il carattere o AltDirectorySeparatorChar , il Combine metodo aggiunge un DirectorySeparatorChar carattere tra tale elemento e quello successivo. Si noti che, se l'elemento termina in un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il Combine metodo mantiene il carattere separatore di percorso originale e aggiunge uno supportato. Nell'esempio seguente viene confrontato il risultato nei sistemi basati su Windows e Unix quando la barra rovesciata viene usata come carattere separatore di percorso.

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

Le stringhe di lunghezza zero vengono omesse dal percorso combinato.

I parametri non vengono analizzati se hanno spazio vuoto.

.NET Framework e versioni di .NET Core precedenti a 2.1: non tutti i caratteri non validi per i nomi di directory e file vengono interpretati come non accettabili dal Combine metodo, perché è possibile usare questi caratteri per la ricerca di caratteri jolly. Ad esempio, anche Path.Combine("c:\\", "*.txt") se potrebbe non essere valido se si crea un file da esso, è valido come stringa di ricerca. Viene quindi interpretato correttamente dal Combine metodo .

Vedi anche

Si applica a

Combine(String, String)

Source:
Path.cs
Source:
Path.cs
Source:
Path.cs

Combina due stringhe in un percorso.

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

Parametri

path1
String

Primo percorso da combinare.

path2
String

Secondo percorso da combinare.

Restituisce

Percorsi combinati. Se uno dei percorsi specificati è una stringa di lunghezza zero, il metodo restituirà solo l'altro percorso. Se path2 contiene un percorso assoluto, il metodo restituisce path2.

Eccezioni

.NET Framework e .NET Core versioni precedenti alla versione 2.1: path1 o path2 contiene uno o più caratteri non validi definiti in GetInvalidPathChars().

path1 o path2 è null.

Esempio

Nell'esempio seguente viene illustrato l'uso del Combine metodo in 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

Commenti

Se path1 non è un riferimento all'unità , ovvero "C:" o "D:") e non termina con un carattere separatore valido come definito in DirectorySeparatorChar, AltDirectorySeparatorCharo VolumeSeparatorChar, DirectorySeparatorChar viene aggiunto a path1 prima della concatenazione. Si noti che se path1 termina in un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il Combine metodo mantiene il carattere separatore di percorso originale e aggiunge uno supportato. Nell'esempio seguente viene confrontato il risultato nei sistemi basati su Windows e Unix quando la barra rovesciata viene usata come carattere separatore di percorso.

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

Se path2 non include una radice ,ad esempio, se path2 non inizia con un carattere separatore o una specifica di unità, il risultato è una concatenazione dei due percorsi, con un carattere separatore di intervento. Se path2 include una radice, path2 viene restituita.

I parametri non vengono analizzati se hanno spazio vuoto. Pertanto, se path2 include spazio vuoto (ad esempio, " \file.txt "), il Combine metodo aggiunge path2 a path1 anziché restituire solo path2.

.NET Framework e versioni di .NET Core precedenti a 2.1: non tutti i caratteri non validi per i nomi di directory e file vengono interpretati come non accettabili dal Combine metodo, perché è possibile usare questi caratteri per la ricerca di caratteri jolly. Ad esempio, anche Path.Combine("c:\\", "*.txt") se potrebbe non essere valido se si crea un file da esso, è valido come stringa di ricerca. Viene quindi interpretato correttamente dal Combine metodo .

Per un elenco di attività di I/O comuni, vedere Attività di I/O comuni.

Vedi anche

Si applica a

Combine(String, String, String)

Source:
Path.cs
Source:
Path.cs
Source:
Path.cs

Combina tre stringhe in un percorso.

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

Parametri

path1
String

Primo percorso da combinare.

path2
String

Secondo percorso da combinare.

path3
String

Terzo percorso da combinare.

Restituisce

Percorsi combinati.

Eccezioni

.NET Framework e .NET Core versioni precedenti alla versione 2.1: path1, path2o path3 contiene uno o più caratteri non validi definiti in GetInvalidPathChars().

path1, path2 o path3 è null.

Esempio

Nell'esempio seguente vengono combinati tre percorsi.

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)

Commenti

path1 deve essere un percorso assoluto ,ad esempio "d:\archives" o "\\archives\public"). Se path2 o path3 è anche un percorso assoluto, l'operazione di combinazione elimina tutti i percorsi combinati in precedenza e reimposta il percorso assoluto.

Le stringhe di lunghezza zero vengono omesse dal percorso combinato.

Se path1 o path2 non è un riferimento all'unità , ovvero "C:" o "D:") e non termina con un carattere separatore valido come definito in DirectorySeparatorChar, AltDirectorySeparatorCharo VolumeSeparatorChar, DirectorySeparatorChar viene aggiunto o path1path2 prima della concatenazione. Si noti che se path1 o path2 termina in un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il Combine metodo mantiene il carattere separatore di percorso originale e aggiunge uno supportato. Nell'esempio seguente viene confrontato il risultato nei sistemi basati su Windows e Unix quando la barra rovesciata viene usata come carattere separatore di percorso.

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

Se path2 non include una radice ,ad esempio, se path2 non inizia con un carattere separatore o una specifica di unità, il risultato è una concatenazione dei due percorsi, con un carattere separatore di intervento. Se path2 include una radice, path2 viene restituita.

I parametri non vengono analizzati se hanno spazio vuoto. Pertanto, se path2 include spazi vuoti (ad esempio , " \file.txt "), il Combine metodo aggiunge path2 a path1.

.NET Framework e versioni di .NET Core precedenti a 2.1: non tutti i caratteri non validi per i nomi di directory e file vengono interpretati come non accettabili dal Combine metodo, perché è possibile usare questi caratteri per la ricerca di caratteri jolly. Ad esempio, anche Path.Combine("c:\\", "*.txt") se potrebbe non essere valido se si crea un file da esso, è valido come stringa di ricerca. Viene quindi interpretato correttamente dal Combine metodo .

Vedi anche

Si applica a

Combine(String, String, String, String)

Source:
Path.cs
Source:
Path.cs
Source:
Path.cs

Combina quattro stringhe in un percorso.

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

Parametri

path1
String

Primo percorso da combinare.

path2
String

Secondo percorso da combinare.

path3
String

Terzo percorso da combinare.

path4
String

Quarto percorso da combinare.

Restituisce

Percorsi combinati.

Eccezioni

.NET Framework e .NET Core versioni precedenti alla versione 2.1: path1, , path2path3o path4 contiene uno o più caratteri non validi definiti in GetInvalidPathChars().

path1, path2, path3 o path4 è null.

Esempio

Nell'esempio seguente vengono combinati quattro percorsi.

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)

Commenti

path1 deve essere un percorso assoluto ,ad esempio "d:\archives" o "\\archives\public"). Se uno dei percorsi successivi è anche un percorso assoluto, l'operazione di combinazione elimina tutti i percorsi combinati in precedenza e reimposta il percorso assoluto.

Le stringhe di lunghezza zero vengono omesse dal percorso combinato.

Se path1, path2o path3 non è un riferimento all'unità , ovvero "C:" o "D:") e non termina con un carattere separatore valido come definito in DirectorySeparatorChar, AltDirectorySeparatorCharo VolumeSeparatorChar, DirectorySeparatorChar viene aggiunto a esso prima della concatenazione. Si noti che se path1, path2o path3 termina in un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il Combine metodo mantiene il carattere separatore di percorso originale e aggiunge uno supportato. Nell'esempio seguente viene confrontato il risultato nei sistemi basati su Windows e Unix quando la barra rovesciata viene usata come carattere separatore di percorso.

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\

Se path2 non include una radice ,ad esempio, se path2 non inizia con un carattere separatore o una specifica di unità, il risultato è una concatenazione dei due percorsi, con un carattere separatore di intervento. Se path2 include una radice, path2 viene restituita.

I parametri non vengono analizzati se hanno spazio vuoto. Pertanto, se path2 include spazi vuoti (ad esempio , " \file.txt "), il Combine metodo aggiunge path2 a path1.

.NET Framework e versioni di .NET Core precedenti a 2.1: non tutti i caratteri non validi per i nomi di directory e file vengono interpretati come non accettabili dal Combine metodo, perché è possibile usare questi caratteri per la ricerca di caratteri jolly. Ad esempio, anche Path.Combine("c:\\", "*.txt") se potrebbe non essere valido se si crea un file da esso, è valido come stringa di ricerca. Viene quindi interpretato correttamente dal Combine metodo .

Vedi anche

Si applica a