Bagikan melalui


Path.Combine Metode

Definisi

Menggabungkan string ke dalam jalur.

Overload

Combine(String[])

Menggabungkan array string ke dalam jalur.

Combine(String, String)

Menggabungkan dua string ke dalam jalur.

Combine(String, String, String)

Menggabungkan tiga string ke dalam jalur.

Combine(String, String, String, String)

Menggabungkan empat string ke dalam jalur.

Keterangan

Metode ini dimaksudkan untuk menggabungkan string individual ke dalam satu string yang mewakili jalur file. Namun, jika argumen selain yang pertama berisi jalur berakar, komponen jalur sebelumnya diabaikan, dan string yang dikembalikan dimulai dengan komponen jalur berakar tersebut. Sebagai alternatif untuk metode ini Combine , pertimbangkan untuk menggunakan Join metode atau TryJoin .

Penting

Metode ini mengasumsikan bahwa argumen pertama adalah jalur absolut dan argumen atau argumen berikut adalah jalur relatif. Jika ini tidak terjadi, dan terutama jika argumen berikutnya adalah string yang dimasukkan oleh pengguna, panggil Join metode atau TryJoin sebagai gantinya.

Combine(String[])

Sumber:
Path.cs
Sumber:
Path.cs
Sumber:
Path.cs

Menggabungkan array string ke dalam jalur.

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

Parameter

paths
String[]

Array bagian jalur.

Mengembalikan

Jalur gabungan.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: Salah satu string dalam array berisi satu atau beberapa karakter yang tidak valid yang ditentukan dalam GetInvalidPathChars().

Salah satu string dalam array adalah null.

Contoh

Contoh berikut menggabungkan array string ke dalam jalur.

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)

Keterangan

paths harus menjadi array dari bagian jalur untuk digabungkan. Jika salah satu jalur berikutnya adalah jalur absolut, maka operasi gabungan direset dimulai dengan jalur absolut tersebut, membuang semua jalur gabungan sebelumnya.

Jika ada elemen di paths tetapi yang terakhir bukan drive dan tidak diakhir dengan DirectorySeparatorChar karakter atau AltDirectorySeparatorChar , Combine metode menambahkan DirectorySeparatorChar karakter antara elemen tersebut dan yang berikutnya. Perhatikan bahwa, jika elemen berakhir dengan karakter pemisah jalur yang tidak sesuai untuk platform target, Combine metode mempertahankan karakter pemisah jalur asli dan menambahkan yang didukung. Contoh berikut membandingkan hasil pada sistem berbasis Windows dan Unix ketika garis miring terbalik digunakan sebagai karakter pemisah jalur.

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

String panjang nol dihilangkan dari jalur gabungan.

Parameter tidak diurai jika memiliki spasi kosong.

.NET Framework dan .NET Core yang lebih lama dari 2.1: Tidak semua karakter yang tidak valid untuk direktori dan nama file ditafsirkan sebagai tidak dapat diterima oleh Combine metode , karena Anda dapat menggunakan karakter ini untuk mencari karakter kartubebas. Misalnya, meskipun Path.Combine("c:\\", "*.txt") mungkin tidak valid jika Anda membuat file darinya, file tersebut valid sebagai string pencarian. Oleh karena itu berhasil ditafsirkan dengan Combine metode .

Lihat juga

Berlaku untuk

Combine(String, String)

Sumber:
Path.cs
Sumber:
Path.cs
Sumber:
Path.cs

Menggabungkan dua string ke dalam jalur.

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

Parameter

path1
String

Jalur pertama untuk digabungkan.

path2
String

Jalur kedua untuk digabungkan.

Mengembalikan

Jalur gabungan. Jika salah satu jalur yang ditentukan adalah string panjang nol, metode ini mengembalikan jalur lainnya. Jika path2 berisi jalur absolut, metode ini mengembalikan path2.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: path1 atau path2 berisi satu atau beberapa karakter yang tidak valid yang ditentukan dalam GetInvalidPathChars().

path1 atau path2 adalah null.

Contoh

Contoh berikut menunjukkan menggunakan metode pada Combine 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

Keterangan

Jika path1 bukan referensi drive (yaitu, "C:" atau "D:") dan tidak berakhir dengan karakter pemisah yang valid seperti yang didefinisikan dalam DirectorySeparatorChar, , AltDirectorySeparatorCharatau VolumeSeparatorChar, DirectorySeparatorChar ditambahkan ke path1 sebelum penggabungan. Perhatikan bahwa jika path1 berakhir dengan karakter pemisah jalur yang tidak sesuai untuk platform target, Combine metode mempertahankan karakter pemisah jalur asli dan menambahkan yang didukung. Contoh berikut membandingkan hasil pada sistem berbasis Windows dan Unix ketika garis miring terbalik digunakan sebagai karakter pemisah jalur.

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

Jika path2 tidak menyertakan akar (misalnya, jika path2 tidak dimulai dengan karakter pemisah atau spesifikasi drive), hasilnya adalah perangkaian dari dua jalur, dengan karakter pemisah yang mengintervensi. Jika path2 menyertakan root, path2 dikembalikan.

Parameter tidak diurai jika memiliki spasi kosong. Oleh karena itu, jika path2 menyertakan spasi kosong (misalnya, " \file.txt "), Combine metode ditambahkan path2 ke path1 alih-alih hanya path2mengembalikan .

.NET Framework dan .NET Core yang lebih lama dari 2.1: Tidak semua karakter yang tidak valid untuk direktori dan nama file ditafsirkan sebagai tidak dapat diterima oleh Combine metode , karena Anda dapat menggunakan karakter ini untuk mencari karakter kartubebas. Misalnya, meskipun Path.Combine("c:\\", "*.txt") mungkin tidak valid jika Anda membuat file darinya, file tersebut valid sebagai string pencarian. Oleh karena itu berhasil ditafsirkan dengan Combine metode .

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Lihat juga

Berlaku untuk

Combine(String, String, String)

Sumber:
Path.cs
Sumber:
Path.cs
Sumber:
Path.cs

Menggabungkan tiga string ke dalam jalur.

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

Parameter

path1
String

Jalur pertama untuk digabungkan.

path2
String

Jalur kedua untuk digabungkan.

path3
String

Jalur ketiga untuk digabungkan.

Mengembalikan

Jalur gabungan.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: path1, , path2atau path3 berisi satu atau beberapa karakter yang tidak valid yang ditentukan dalam GetInvalidPathChars().

path1, path2, atau path3 adalah null.

Contoh

Contoh berikut menggabungkan tiga jalur.

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)

Keterangan

path1 harus berupa jalur absolut (misalnya, "d:\archives" atau "\\archives\public"). Jika path2 atau path3 juga merupakan jalur absolut, operasi gabungan membuang semua jalur gabungan sebelumnya dan mengatur ulang ke jalur absolut tersebut.

String panjang nol dihilangkan dari jalur gabungan.

Jika path1 atau path2 bukan referensi drive (yaitu, "C:" atau "D:") dan tidak berakhir dengan karakter pemisah yang valid seperti yang didefinisikan dalam DirectorySeparatorChar, , AltDirectorySeparatorCharatau VolumeSeparatorChar, DirectorySeparatorChar ditambahkan ke path1 atau path2 sebelum perangkaian. Perhatikan bahwa jika path1 atau path2 berakhir dengan karakter pemisah jalur yang tidak sesuai untuk platform target, Combine metode mempertahankan karakter pemisah jalur asli dan menambahkan yang didukung. Contoh berikut membandingkan hasil pada sistem berbasis Windows dan Unix ketika garis miring terbalik digunakan sebagai karakter pemisah jalur.

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

Jika path2 tidak menyertakan akar (misalnya, jika path2 tidak dimulai dengan karakter pemisah atau spesifikasi drive), hasilnya adalah perangkaian dari dua jalur, dengan karakter pemisah yang mengintervensi. Jika path2 menyertakan root, path2 dikembalikan.

Parameter tidak diurai jika memiliki spasi kosong. Oleh karena itu, jika path2 menyertakan spasi kosong (misalnya, " \file.txt "), Combine metode ditambahkan path2 ke path1.

.NET Framework dan .NET Core yang lebih lama dari 2.1: Tidak semua karakter yang tidak valid untuk direktori dan nama file ditafsirkan sebagai tidak dapat diterima oleh Combine metode , karena Anda dapat menggunakan karakter ini untuk mencari karakter kartubebas. Misalnya, meskipun Path.Combine("c:\\", "*.txt") mungkin tidak valid jika Anda membuat file darinya, file tersebut valid sebagai string pencarian. Oleh karena itu berhasil ditafsirkan dengan Combine metode .

Lihat juga

Berlaku untuk

Combine(String, String, String, String)

Sumber:
Path.cs
Sumber:
Path.cs
Sumber:
Path.cs

Menggabungkan empat string ke dalam jalur.

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

Parameter

path1
String

Jalur pertama untuk digabungkan.

path2
String

Jalur kedua untuk digabungkan.

path3
String

Jalur ketiga untuk digabungkan.

path4
String

Jalur keempat untuk digabungkan.

Mengembalikan

Jalur gabungan.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: path1, , path2path3, atau path4 berisi satu atau beberapa karakter yang tidak valid yang ditentukan dalam GetInvalidPathChars().

path1, path2, path3, atau path4 adalah null.

Contoh

Contoh berikut menggabungkan empat jalur.

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)

Keterangan

path1 harus berupa jalur absolut (misalnya, "d:\archives" atau "\\archives\public"). Jika salah satu jalur berikutnya juga merupakan jalur absolut, operasi gabungan akan membuang semua jalur gabungan sebelumnya dan mengatur ulang ke jalur absolut tersebut.

String panjang nol dihilangkan dari jalur gabungan.

Jika path1, path2, atau path3 bukan referensi drive (yaitu, "C:" atau "D:") dan tidak berakhir dengan karakter pemisah yang valid seperti yang didefinisikan dalam , , AltDirectorySeparatorCharatau VolumeSeparatorChar, DirectorySeparatorChar ditambahkan ke dalamnya DirectorySeparatorCharsebelum perangkaian. Perhatikan bahwa jika path1, path2, atau path3 berakhir dengan karakter pemisah jalur yang tidak sesuai untuk platform target, Combine metode mempertahankan karakter pemisah jalur asli dan menambahkan yang didukung. Contoh berikut membandingkan hasil pada sistem berbasis Windows dan Unix ketika garis miring terbalik digunakan sebagai karakter pemisah jalur.

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\

Jika path2 tidak menyertakan akar (misalnya, jika path2 tidak dimulai dengan karakter pemisah atau spesifikasi drive), hasilnya adalah perangkaian dari dua jalur, dengan karakter pemisah yang mengintervensi. Jika path2 menyertakan root, path2 dikembalikan.

Parameter tidak diurai jika memiliki spasi kosong. Oleh karena itu, jika path2 menyertakan spasi kosong (misalnya, " \file.txt "), Combine metode ditambahkan path2 ke path1.

.NET Framework dan .NET Core yang lebih lama dari 2.1: Tidak semua karakter yang tidak valid untuk direktori dan nama file ditafsirkan sebagai tidak dapat diterima oleh Combine metode , karena Anda dapat menggunakan karakter ini untuk mencari karakter kartubebas. Misalnya, meskipun Path.Combine("c:\\", "*.txt") mungkin tidak valid jika Anda membuat file darinya, file tersebut valid sebagai string pencarian. Oleh karena itu berhasil ditafsirkan dengan Combine metode .

Lihat juga

Berlaku untuk