Path.Combine Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:^*&)(_=@#'\\^.*(.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
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
- formati di percorso file nei sistemi Windows
- di I/O di flusso e file
- Procedura: Leggere testo da un file
- Procedura: Scrivere testo in un di file
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
, path2
o path3
contengono 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 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
, path3
o path4
contengono 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
, path2
o 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
, path2
o 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
.