Condividi tramite


Path.Combine Metodo

Definizione

Combina stringhe in un percorso.

Overload

Combine(ReadOnlySpan<String>)

Combina un intervallo di stringhe in un percorso.

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 è progettato per concatenare singole stringhe in una singola stringa che rappresenta un percorso di file. Tuttavia, se un argomento diverso dal primo contiene un percorso rooted, tutti i componenti di percorso precedenti vengono ignorati e la stringa restituita inizia con il componente del percorso rooted. In alternativa al metodo Combine, è consigliabile usare i metodi Join o TryJoin.

Importante

Questo metodo presuppone che il primo argomento sia un percorso assoluto e che l'argomento o gli argomenti seguenti siano percorsi relativi. In caso contrario, e in particolare se gli argomenti successivi sono stringhe immesse dall'utente, chiamare invece il metodo Join o TryJoin.

Combine(ReadOnlySpan<String>)

Combina un intervallo di stringhe in un percorso.

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

Parametri

paths
ReadOnlySpan<String>

Intervallo di parti del percorso.

Restituisce

Percorsi combinati.

Si applica a

Combine(String[])

Origine:
Path.cs
Origine:
Path.cs
Origine:
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 alla 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 viene reimpostata a partire da tale percorso assoluto, ignorando tutti i percorsi combinati precedenti.

Se un elemento in paths ma l'ultimo non è un'unità e non termina con il DirectorySeparatorChar o il carattere AltDirectorySeparatorChar, il metodo Combine aggiunge un carattere DirectorySeparatorChar tra tale elemento e quello successivo. Si noti che, se l'elemento termina con un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il metodo Combine mantiene il carattere separatore di percorso originale e ne 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 spazi vuoti.

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

Vedi anche

Si applica a

Combine(String, String)

Origine:
Path.cs
Origine:
Path.cs
Origine:
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, questo metodo restituisce l'altro percorso. Se path2 contiene un percorso assoluto, questo metodo restituisce path2.

Eccezioni

.NET Framework e versioni di .NET Core precedenti alla 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 metodo Combine 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 accodato a path1 prima della concatenazione. Si noti che se path1 termina con un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il metodo Combine mantiene il carattere separatore di percorso originale e ne 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 intermedio. Se path2 include una radice, viene restituito path2.

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

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

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

Vedi anche

Si applica a

Combine(String, String, String)

Origine:
Path.cs
Origine:
Path.cs
Origine:
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 le versioni di .NET Core precedenti alla 2.1: path1, path2o path3 contengono uno o più caratteri non validi definiti in GetInvalidPathChars().

path1, path2o 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 accodato a path1 o path2 prima della concatenazione. Si noti che se path1 o path2 termina con un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il metodo Combine mantiene il carattere separatore di percorso originale e ne 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 intermedio. Se path2 include una radice, viene restituito path2.

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

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

Vedi anche

Si applica a

Combine(String, String, String, String)

Origine:
Path.cs
Origine:
Path.cs
Origine:
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 le versioni di .NET Core precedenti alla 2.1: path1, path2, path3o path4 contengono uno o più caratteri non validi definiti in GetInvalidPathChars().

path1, path2, path3o 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 accodato prima della concatenazione. Si noti che se path1, path2o path3 termina con un carattere separatore di percorso non appropriato per la piattaforma di destinazione, il metodo Combine mantiene il carattere separatore di percorso originale e ne 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 intermedio. Se path2 include una radice, viene restituito path2.

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

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

Vedi anche

Si applica a