Share via


Path Kelas

Definisi

Melakukan operasi pada String instans yang berisi informasi jalur file atau direktori. Operasi ini dilakukan secara lintas platform.

public ref class Path abstract sealed
public ref class Path sealed
public static class Path
public sealed class Path
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Path = class
Public Class Path
Public NotInheritable Class Path
Warisan
Path
Atribut

Contoh

Contoh berikut menunjukkan beberapa anggota Path utama kelas.

using namespace System;
using namespace System::IO;
int main()
{
   String^ path1 = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp\\MyTest";
   String^ path3 = "temp";
   if ( Path::HasExtension( path1 ) )
   {
      Console::WriteLine( "{0} has an extension.", path1 );
   }

   if (  !Path::HasExtension( path2 ) )
   {
      Console::WriteLine( "{0} has no extension.", path2 );
   }

   if (  !Path::IsPathRooted( path3 ) )
   {
      Console::WriteLine( "The string {0} contains no root information.", path3 );
   }

   Console::WriteLine( "The full path of {0} is {1}.", path3, Path::GetFullPath( path3 ) );
   Console::WriteLine( "{0} is the location for temporary files.", Path::GetTempPath() );
   Console::WriteLine( "{0} is a file available for use.", Path::GetTempFileName() );
   Console::WriteLine( "\r\nThe set of invalid characters in a path is:" );
   Console::WriteLine( "(Note that the wildcard characters '*' and '?' are not invalid.):" );
   Collections::IEnumerator^ myEnum = Path::InvalidPathChars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c =  *safe_cast<Char^>(myEnum->Current);
      Console::WriteLine( c );
   }
}
using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path1 = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp\MyTest";
        string path3 = @"temp";

        if (Path.HasExtension(path1))
        {
            Console.WriteLine("{0} has an extension.", path1);
        }

        if (!Path.HasExtension(path2))
        {
            Console.WriteLine("{0} has no extension.", path2);
        }

        if (!Path.IsPathRooted(path3))
        {
            Console.WriteLine("The string {0} contains no root information.", path3);
        }

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());

        /* This code produces output similar to the following:
         * c:\temp\MyTest.txt has an extension.
         * c:\temp\MyTest has no extension.
         * The string temp contains no root information.
         * The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
         */
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp\MyTest"
        Dim path3 As String = "temp"

        If Path.HasExtension(path1) Then
            Console.WriteLine("{0} has an extension.", path1)
        End If

        If Path.HasExtension(path2) = False Then
            Console.WriteLine("{0} has no extension.", path2)
        End If

        If Path.IsPathRooted(path3) = False Then
            Console.WriteLine("The string {0} contains no root information.", path3)
        End If

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3))
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath())
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName())

        ' This code produces output similar to the following:
        ' c:\temp\MyTest.txt has an extension.
        ' c:\temp\MyTest has no extension.
        ' The string temp contains no root information.
        ' The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.

    End Sub
End Class

Keterangan

Jalur adalah string yang menyediakan lokasi file atau direktori. Jalur tidak selalu menunjuk ke lokasi pada disk; misalnya, jalur mungkin memetakan ke lokasi dalam memori atau di perangkat. Format jalur yang tepat ditentukan oleh platform saat ini. Misalnya, pada beberapa sistem, jalur dapat dimulai dengan drive atau huruf volume, sementara elemen ini tidak ada di sistem lain. Pada beberapa sistem, jalur file dapat berisi ekstensi, yang menunjukkan jenis informasi yang disimpan dalam file. Format ekstensi nama file bergantung pada platform; misalnya, beberapa sistem membatasi ekstensi hingga tiga karakter (seperti FAT16 yang umumnya digunakan pada penyimpanan flash yang lebih kecil dan versi ISO 9660 yang lebih lama yang digunakan pada media optik), dan yang lain tidak. Platform saat ini juga menentukan sekumpulan karakter yang digunakan untuk memisahkan elemen jalur, dan sekumpulan karakter yang tidak dapat digunakan saat menentukan jalur. Karena perbedaan ini, bidang Path kelas serta perilaku yang tepat dari beberapa anggota kelas bergantung pada Path platform.

Jalur dapat berisi informasi lokasi absolut atau relatif. Jalur absolut sepenuhnya menentukan lokasi: file atau direktori dapat diidentifikasi secara unik terlepas dari lokasi saat ini. Jalur relatif menentukan lokasi parsial: lokasi saat ini digunakan sebagai titik awal saat menemukan file yang ditentukan dengan jalur relatif. Untuk menentukan direktori saat ini, panggil Directory.GetCurrentDirectory.

.NET Core 1.1 dan versi yang lebih baru dan .NET Framework 4.6.2 dan versi yang lebih baru juga mendukung akses ke objek sistem file yang merupakan nama perangkat, seperti "\\?\C:\".

Untuk informasi selengkapnya tentang format jalur file di Windows, lihat Format jalur file pada sistem Windows.

Sebagian besar anggota Path kelas tidak berinteraksi dengan sistem file dan tidak memverifikasi keberadaan file yang ditentukan oleh string jalur. Path anggota kelas yang mengubah string jalur, seperti ChangeExtension, tidak berpengaruh pada nama file dalam sistem file.

Beberapa Path anggota memvalidasi konten string jalur tertentu, dan melemparkan ArgumentException jika string berisi karakter yang tidak valid dalam string jalur, seperti yang didefinisikan dalam karakter yang dikembalikan dari GetInvalidPathChars metode . Misalnya, pada platform desktop berbasis Windows, karakter jalur yang tidak valid mungkin menyertakan tanda kutip ("), kurang dari (<), lebih besar dari (>), pipa (|), backspace (\b), null (\0), dan karakter Unicode 16 hingga 18 dan 20 hingga 25. Perilaku validasi ini bervariasi di antara versi .NET:

  • Pada versi .NET Framework dan .NET Core yang lebih lama dari 2.1: Semua Path anggota yang mengambil jalur sebagai argumen melempar ArgumentException jika mereka mendeteksi karakter jalur yang tidak valid.

  • Pada .NET Core 2.1 dan versi yang lebih baru: GetFullPath adalah satu-satunya anggota yang melemparkan ArgumentException jika string berisi karakter jalur yang tidak valid.

Path Anggota kelas memungkinkan Anda untuk dengan cepat dan mudah melakukan operasi umum seperti menentukan apakah ekstensi nama file adalah bagian dari jalur, dan menggabungkan dua string ke dalam satu nama jalur.

Semua anggota Path kelas bersifat statis dan karenanya dapat dipanggil tanpa memiliki instans jalur.

Catatan

Dalam anggota yang menerima jalur sebagai string input, jalur tersebut harus terbentuk dengan baik atau pengecualian dinaikkan. Misalnya, jika jalur sepenuhnya memenuhi syarat tetapi dimulai dengan spasi, jalur tidak dipangkas dalam metode kelas. Oleh karena itu, jalurnya salah bentuk dan pengecualian dinaikkan. Demikian pula, jalur atau kombinasi jalur tidak dapat sepenuhnya memenuhi syarat dua kali. Misalnya, "c:\temp c:\windows" juga menimbulkan pengecualian dalam banyak kasus. Pastikan jalur Anda terbentuk dengan baik saat menggunakan metode yang menerima string jalur.

Di anggota yang menerima jalur, jalur dapat merujuk ke file atau hanya direktori. Jalur yang ditentukan juga dapat merujuk ke jalur relatif atau jalur Universal Naming Convention (UNC) untuk server dan nama berbagi. Misalnya, semua berikut ini adalah jalur yang dapat diterima:

  • "c:\\MyDir\\MyFile.txt" di C#, atau "c:\MyDir\MyFile.txt" di Visual Basic.

  • "c:\\MyDir" di C#, atau "c:\MyDir" di Visual Basic.

  • "MyDir\\MySubdir" di C#, atau "MyDir\MySubDir" di Visual Basic.

  • "\\\MyServer\\MyShare" di C#, atau "\\MyServer\MyShare" di Visual Basic.

Karena semua operasi ini dilakukan pada string, tidak mungkin untuk memverifikasi bahwa hasilnya valid dalam semua skenario. Misalnya, GetExtension metode mengurai string yang Anda teruskan ke dalamnya dan mengembalikan ekstensi dari string tersebut. Namun, ini tidak berarti bahwa file dengan ekstensi tersebut ada pada disk.

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

Bidang

AltDirectorySeparatorChar

Menyediakan karakter alternatif khusus platform yang digunakan untuk memisahkan tingkat direktori dalam string jalur yang mencerminkan organisasi sistem file hierarkis.

DirectorySeparatorChar

Menyediakan karakter khusus platform yang digunakan untuk memisahkan tingkat direktori dalam string jalur yang mencerminkan organisasi sistem file hierarkis.

InvalidPathChars
Kedaluwarsa.
Kedaluwarsa.

Menyediakan array karakter khusus platform yang tidak dapat ditentukan dalam argumen string jalur yang diteruskan ke anggota Path kelas.

PathSeparator

Karakter pemisah khusus platform yang digunakan untuk memisahkan string jalur dalam variabel lingkungan.

VolumeSeparatorChar

Menyediakan karakter pemisah volume khusus platform.

Metode

ChangeExtension(String, String)

Mengubah ekstensi string 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.

Combine(String[])

Menggabungkan array string ke dalam jalur.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Mengembalikan nilai yang menunjukkan apakah jalur, yang ditentukan sebagai rentang baca-saja, berakhir di pemisah direktori.

EndsInDirectorySeparator(String)

Mengembalikan nilai yang menunjukkan apakah jalur yang ditentukan berakhir di pemisah direktori.

Exists(String)

Menentukan apakah file atau direktori yang ditentukan ada.

GetDirectoryName(ReadOnlySpan<Char>)

Mengembalikan informasi direktori untuk jalur yang ditentukan yang diwakili oleh rentang karakter.

GetDirectoryName(String)

Mengembalikan informasi direktori untuk jalur yang ditentukan.

GetExtension(ReadOnlySpan<Char>)

Mengembalikan ekstensi jalur file yang diwakili oleh rentang karakter baca-saja.

GetExtension(String)

Mengembalikan ekstensi (termasuk periode ".") dari string jalur yang ditentukan.

GetFileName(ReadOnlySpan<Char>)

Mengembalikan nama file dan ekstensi jalur file yang diwakili oleh rentang karakter baca-saja.

GetFileName(String)

Mengembalikan nama file dan ekstensi string jalur yang ditentukan.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Mengembalikan nama file tanpa ekstensi jalur file yang diwakili oleh rentang karakter baca-saja.

GetFileNameWithoutExtension(String)

Mengembalikan nama file dari string jalur yang ditentukan tanpa ekstensi.

GetFullPath(String)

Mengembalikan jalur absolut untuk string jalur yang ditentukan.

GetFullPath(String, String)

Mengembalikan jalur absolut dari jalur relatif dan jalur dasar yang sepenuhnya memenuhi syarat.

GetInvalidFileNameChars()

Mendapatkan array yang berisi karakter yang tidak diizinkan dalam nama file.

GetInvalidPathChars()

Mendapatkan array yang berisi karakter yang tidak diperbolehkan dalam nama jalur.

GetPathRoot(ReadOnlySpan<Char>)

Mendapatkan informasi direktori akar dari jalur yang terkandung dalam rentang karakter yang ditentukan.

GetPathRoot(String)

Mendapatkan informasi direktori akar dari jalur yang terkandung dalam string yang ditentukan.

GetRandomFileName()

Mengembalikan nama folder atau nama file acak.

GetRelativePath(String, String)

Mengembalikan jalur relatif dari satu jalur ke jalur lainnya.

GetTempFileName()

Membuat file sementara bernama nol byte yang unik pada disk dan mengembalikan jalur lengkap file tersebut.

GetTempPath()

Mengembalikan jalur folder sementara pengguna saat ini.

HasExtension(ReadOnlySpan<Char>)

Menentukan apakah jalur yang diwakili oleh rentang karakter yang ditentukan menyertakan ekstensi nama file.

HasExtension(String)

Menentukan apakah jalur menyertakan ekstensi nama file.

IsPathFullyQualified(ReadOnlySpan<Char>)

Mengembalikan nilai yang menunjukkan apakah jalur file yang diwakili oleh rentang karakter yang ditentukan ditetapkan ke drive tertentu atau jalur UNC.

IsPathFullyQualified(String)

Mengembalikan nilai yang menunjukkan apakah jalur file yang ditentukan diperbaiki ke drive atau jalur UNC tertentu.

IsPathRooted(ReadOnlySpan<Char>)

Mengembalikan nilai yang menunjukkan apakah rentang karakter yang ditentukan yang mewakili jalur file berisi akar.

IsPathRooted(String)

Mengembalikan nilai yang menunjukkan apakah string jalur yang ditentukan berisi akar.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Menggabungkan dua komponen jalur ke dalam satu jalur.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Menggabungkan tiga komponen jalur ke dalam satu jalur.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Menggabungkan empat komponen jalur ke dalam satu jalur.

Join(String, String)

Menggabungkan dua jalur ke dalam satu jalur.

Join(String, String, String)

Menggabungkan tiga jalur ke dalam satu jalur.

Join(String, String, String, String)

Menggabungkan empat jalur ke dalam satu jalur.

Join(String[])

Menggabungkan array jalur ke dalam satu jalur.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Memangkas satu pemisah direktori berikutnya di luar akar jalur yang ditentukan.

TrimEndingDirectorySeparator(String)

Memangkas satu pemisah direktori berikutnya di luar akar jalur yang ditentukan.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Mencoba menggabungkan tiga komponen jalur ke rentang satu karakter yang telah dialokasikan sebelumnya, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Mencoba menggabungkan dua komponen jalur ke rentang karakter yang telah dialokasikan sebelumnya tunggal, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.

Berlaku untuk

Lihat juga