Path Sınıf

Tanım

Dosya veya dizin yolu bilgilerini içeren String örneklerde işlemler gerçekleştirir. Bu işlemler platformlar arası bir şekilde gerçekleştirilir.

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
Devralma
Path
Öznitelikler

Örnekler

Aşağıdaki örnekte, Path sınıfının bazı ana üyeleri gösterilmektedir.

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

Açıklamalar

Yol, bir dosyanın veya dizinin konumunu sağlayan bir dizedir. Yol mutlaka disk üzerindeki bir konuma işaret etmez; örneğin, bir yol bellekteki veya cihazdaki bir konuma eşlenebilir. Bir yolun tam biçimi geçerli platform tarafından belirlenir. Örneğin, bazı sistemlerde yol sürücü veya birim harfiyle başlayabilir, ancak bu öğe diğer sistemlerde mevcut değildir. Bazı sistemlerde dosya yolları, dosyada depolanan bilgilerin türünü gösteren uzantılar içerebilir. Dosya adı uzantısının biçimi platforma bağlıdır; örneğin, bazı sistemler uzantıları üç karakterle sınırlar (örneğin, daha küçük flash depolamada yaygın olarak kullanılan FAT16 ve optik medyada kullanılan ISO 9660'ın eski sürümleri) ve diğerleri bunu yapmaz. Geçerli platform ayrıca bir yolun öğelerini ayırmak için kullanılan karakter kümesini ve yolları belirtirken kullanılamayabilecek karakter kümesini de belirler. Bu farklılıklar nedeniyle, Path sınıfının alanları ve Path sınıfının bazı üyelerinin tam davranışı platforma bağlıdır.

Yol mutlak veya göreli konum bilgileri içerebilir. Mutlak yollar tam olarak bir konum belirtir: dosya veya dizin, geçerli konumdan bağımsız olarak benzersiz olarak tanımlanabilir. Göreli yollar kısmi bir konum belirtir: geçerli konum, göreli yol ile belirtilen bir dosya bulunurken başlangıç noktası olarak kullanılır. Geçerli dizini belirlemek için Directory.GetCurrentDirectoryçağrısı yapın.

.NET Core 1.1 ve sonraki sürümleri ile .NET Framework 4.6.2 ve sonraki sürümleri, "\\?\C:\" gibi cihaz adları olan dosya sistemi nesnelerine erişimi de destekler.

Windows'da dosya yolu biçimleri hakkında daha fazla bilgi için bkz. Windows sistemlerinde dosya yolu biçimleri.

Path sınıfının üyelerinin çoğu dosya sistemiyle etkileşim kurmaz ve bir yol dizesi tarafından belirtilen dosyanın varlığını doğrulamaz. Path ChangeExtensiongibi bir yol dizesini değiştiren sınıf üyelerinin dosya sistemindeki dosyaların adları üzerinde hiçbir etkisi yoktur.

Bazı Path üyeleri belirtilen yol dizesinin içeriğini doğrular ve dize, GetInvalidPathChars yönteminden döndürülen karakterlerde tanımlandığı gibi yol dizelerinde geçerli olmayan karakterler içeriyorsa bir ArgumentException oluşturur. Örneğin, Windows tabanlı masaüstü platformlarında geçersiz yol karakterleri tırnak işareti ("), küçüktür (<), büyüktür (>), kanal (|), geri al (\b), null (\0) ve 16 ile 18 ve 20 ile 25 arasında Unicode karakterleri içerebilir. Bu doğrulama davranışı .NET sürümleri arasında değişiklik gösterir:

  • 2.1'den eski .NET Framework ve .NET Core sürümlerinde: Bağımsız değişken olarak yol alan tüm Path üyeleri, geçersiz yol karakterleri algılarsa bir ArgumentException oluşturur.

  • .NET Core 2.1 ve sonraki sürümlerinde: dize geçersiz yol karakterleri içeriyorsa ArgumentException oluşturan tek üye GetFullPath.

Path sınıfının üyeleri, dosya adı uzantısının bir yolun parçası olup olmadığını belirleme ve iki dizeyi tek yol adında birleştirme gibi yaygın işlemleri hızlı ve kolay bir şekilde gerçekleştirmenizi sağlar.

Path sınıfının tüm üyeleri statik olduğundan bir yol örneği olmadan çağrılabilir.

Not

Bir yolu giriş dizesi olarak kabul eden üyelerde, bu yol iyi biçimlendirilmiş olmalıdır veya bir özel durum oluşturulur. Örneğin, bir yol tam olarak nitelenmişse ancak bir boşlukla başlıyorsa, yol sınıfın yöntemlerinde kırpılmaz. Bu nedenle, yol yanlış biçimlendirilmiş ve bir özel durum oluşturulur. Benzer şekilde, bir yol veya yolların birleşimi iki kez tam olarak nitelenemez. Örneğin, "c:\temp c:\windows" da çoğu durumda bir özel durum oluşturur. Yol dizesini kabul eden yöntemleri kullanırken yollarınızın iyi biçimlendirildiğinden emin olun.

Yolu kabul eden üyelerde yol bir dosyaya veya yalnızca bir dizine başvurabilir. Belirtilen yol, bir sunucu ve paylaşım adı için göreli yola veya Evrensel Adlandırma Kuralı (UNC) yoluna da başvurabilir. Örneğin, aşağıdakilerin tümü kabul edilebilir yollardır:

  • C# dilinde "c:\\MyDir\\MyFile.txt" veya Visual Basic'te "c:\MyDir\MyFile.txt" .

  • C# dilinde "c:\\MyDir" veya Visual Basic'te "c:\MyDir".

  • C# dilinde "MyDir\\MySubdir" veya Visual Basic'te "MyDir\MySubDir".

  • C# dilinde "\\\\MyServer\\MyShare" veya Visual Basic'te "\\MyServer\MyShare".

Tüm bu işlemler dizeler üzerinde gerçekleştirildiğinden, sonuçların tüm senaryolarda geçerli olduğunu doğrulamak mümkün değildir. Örneğin, GetExtension yöntemi, ona geçirdiğiniz bir dizeyi ayrıştırarak bu dizedeki uzantıyı döndürür. Ancak bu, bu uzantıya sahip bir dosyanın diskte mevcut olduğu anlamına gelmez.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Alanlar

AltDirectorySeparatorChar

Hiyerarşik bir dosya sistemi kuruluşunu yansıtan bir yol dizesindeki dizin düzeylerini ayırmak için kullanılan platforma özgü bir alternatif karakter sağlar.

DirectorySeparatorChar

Hiyerarşik dosya sistemi kuruluşunu yansıtan bir yol dizesindeki dizin düzeylerini ayırmak için kullanılan platforma özgü bir karakter sağlar.

InvalidPathChars
Geçersiz.
Geçersiz.

Path sınıfının üyelerine geçirilen yol dizesi bağımsız değişkenlerinde belirtilemeyen platforma özgü bir karakter dizisi sağlar.

PathSeparator

Ortam değişkenlerindeki yol dizelerini ayırmak için kullanılan platforma özgü ayırıcı karakter.

VolumeSeparatorChar

Platforma özgü birim ayırıcı karakteri sağlar.

Yöntemler

ChangeExtension(String, String)

Yol dizesinin uzantısını değiştirir.

Combine(ReadOnlySpan<String>)

Dizelerin bir aralığını bir yol halinde birleştirir.

Combine(String, String)

İki dizeyi bir yolda birleştirir.

Combine(String, String, String)

Üç dizeyi bir yolda birleştirir.

Combine(String, String, String, String)

Dört dizeyi bir yolda birleştirir.

Combine(String[])

Dize dizisini bir yol halinde birleştirir.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Salt okunur bir yayılma alanı olarak belirtilen yolun bir dizin ayırıcı ile bitip bitmediğini gösteren bir değer döndürür.

EndsInDirectorySeparator(String)

Belirtilen yolun bir dizin ayırıcıyla bitip bitmediğini gösteren bir değer döndürür.

Exists(String)

Belirtilen dosyanın veya dizinin var olup olmadığını belirler.

GetDirectoryName(ReadOnlySpan<Char>)

Bir karakter aralığıyla temsil edilen belirtilen yol için dizin bilgilerini döndürür.

GetDirectoryName(String)

Belirtilen yol için dizin bilgilerini döndürür.

GetExtension(ReadOnlySpan<Char>)

Salt okunur karakter aralığıyla temsil edilen bir dosya yolunun uzantısını döndürür.

GetExtension(String)

Belirtilen yol dizesinin uzantısını ("." dönemi dahil) döndürür.

GetFileName(ReadOnlySpan<Char>)

Salt okunur karakter aralığıyla temsil edilen bir dosya yolunun dosya adını ve uzantısını döndürür.

GetFileName(String)

Belirtilen yol dizesinin dosya adını ve uzantısını döndürür.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Salt okunur karakter aralığıyla temsil edilen bir dosya yolunun uzantısı olmadan dosya adını döndürür.

GetFileNameWithoutExtension(String)

Uzantı olmadan belirtilen yol dizesinin dosya adını döndürür.

GetFullPath(String)

Belirtilen yol dizesi için mutlak yolu döndürür.

GetFullPath(String, String)

Göreli bir yoldan mutlak bir yol ve tam taban yol döndürür.

GetInvalidFileNameChars()

Dosya adlarında izin verilmeyen karakterleri içeren bir dizi alır.

GetInvalidPathChars()

Yol adlarında izin verilmeyen karakterleri içeren bir dizi alır.

GetPathRoot(ReadOnlySpan<Char>)

Belirtilen karakter aralığında yer alan yoldan kök dizin bilgilerini alır.

GetPathRoot(String)

Belirtilen dizede yer alan yoldan kök dizin bilgilerini alır.

GetRandomFileName()

Rastgele bir klasör adı veya dosya adı döndürür.

GetRelativePath(String, String)

Bir yoldan diğerine göreli bir yol döndürür.

GetTempFileName()

Diskte benzersiz adlandırılmış, sıfır baytlık geçici bir dosya oluşturur ve bu dosyanın tam yolunu döndürür.

GetTempPath()

Geçerli kullanıcının geçici klasörünün yolunu döndürür.

HasExtension(ReadOnlySpan<Char>)

Belirtilen karakter aralığı tarafından temsil edilen yolun bir dosya adı uzantısı içerip içermediğini belirler.

HasExtension(String)

Yolun dosya adı uzantısı içerip içermediğini belirler.

IsPathFullyQualified(ReadOnlySpan<Char>)

Belirtilen karakter aralığıyla temsil edilen dosya yolunun belirli bir sürücüye mi yoksa UNC yoluna mı sabitlendiğini gösteren bir değer döndürür.

IsPathFullyQualified(String)

Belirtilen dosya yolunun belirli bir sürücüye mi yoksa UNC yoluna mı sabitlendiğini gösteren bir değer döndürür.

IsPathRooted(ReadOnlySpan<Char>)

Bir dosya yolunu temsil eden belirtilen karakter aralığının kök içerip içermediğini gösteren bir değer döndürür.

IsPathRooted(String)

Belirtilen yol dizesinin kök içerip içermediğini belirten bir değer döndürür.

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

İki yol bileşenini tek bir yolda birleştirir.

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

Üç yol bileşenini tek bir yolda birleştirir.

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

Dört yol bileşenini tek bir yolda birleştirir.

Join(ReadOnlySpan<String>)

Yolların bir aralığını tek bir yol olarak birleştirir.

Join(String, String)

İki yolu tek bir yolda birleştirir.

Join(String, String, String)

Üç yolu tek bir yolda birleştirir.

Join(String, String, String, String)

Dört yolu tek bir yolda birleştirir.

Join(String[])

Bir yol dizisini tek bir yol olarak birleştirir.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Bir sondaki dizin ayırıcısını belirtilen yolun kökünden öteye keser.

TrimEndingDirectorySeparator(String)

Bir sondaki dizin ayırıcısını belirtilen yolun kökünden öteye keser.

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

Üç yol bileşenini önceden ayrılmış tek bir karakter aralığıyla birleştirmeye çalışır ve işlemin başarılı olup olmadığını gösteren bir değer döndürür.

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

İki yol bileşenini önceden ayrılmış tek bir karakter aralığına birleştirmeye çalışır ve işlemin başarılı olup olmadığını gösteren bir değer döndürür.

Şunlara uygulanır

Ayrıca bkz.