Path Sınıf

Tanım

Dosya veya dizin yolu bilgilerini içeren örneklerde String 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 sınıfın bazı ana üyeleri gösterilmektedir Path .

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 bir sürücü veya birim harfiyle başlayabilir, ancak bu öğe diğer sistemlerde mevcut değildir. Bazı sistemlerde dosya yolları, dosyada depolanan bilgi 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ırlandırır (daha küçük flash depolamada yaygın olarak kullanılan FAT16 ve optik medyada kullanılan ISO 9660'ın eski sürümleri gibi) 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, sınıfın alanları ve sınıfın Path bazı üyelerinin Path 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: Göreli yol ile belirtilen bir dosya bulunurken başlangıç noktası olarak geçerli konum kullanılır. Geçerli dizini belirlemek için çağrısı yapın Directory.GetCurrentDirectory.

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

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

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

Bazı Path üyeler belirtilen yol dizesinin içeriğini doğrular ve dize, yöntemden GetInvalidPathChars döndürülen karakterlerde tanımlandığı gibi yol dizelerinde geçerli olmayan karakterler içeriyorsa bir oluştururArgumentException. Örneğin, Windows tabanlı masaüstü platformlarında geçersiz yol karakterleri tırnak ("), küçüktür (<), greater than (>), 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 farklılık 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 üyeler, geçersiz yol karakterleri algılarsa bir ArgumentException oluşturur.

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

sınıfının üyeleri, dosya adı uzantısının Path 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.

Sınıfın Path 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 nitelikliyse ancak 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 yol birleşimi tam olarak iki kez 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", Visual Basic'da "c:\MyDir\MyFile.txt".

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

  • C# dilinde "MyDirMySubdir\\" veya Visual Basic'da "MyDirMySubDir\".

  • C# dilinde "\\\\MyServerMyShare\\" veya Visual Basic'da "\\MyServerMyShare\".

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 yöntemi, GetExtension ona geçirdiğiniz bir dizeyi ayrıştırıp bu dizeden uzantıyı döndürür. Ancak bu, bu uzantıya sahip bir dosyanın diskte var olduğu anlamına gelmez.

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

Alanlar

AltDirectorySeparatorChar

Hiyerarşik dosya sistemi kuruluşunu yansıtan bir yol dizesinde dizin düzeylerini ayırmak için kullanılan platforma özgü alternatif bir 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
Kullanımdan kalktı.
Kullanımdan kalktı.
Kullanımdan kalktı.

Sınıfın üyelerine Path 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(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 yolda birleştirir.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

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

EndsInDirectorySeparator(String)

Belirtilen yolun bir dizin ayırıcı ile 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ığı ile 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 dosya yolunun uzantısını döndürür.

GetExtension(String)

Belirtilen yol dizesinin uzantısını (".") 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 yoldan mutlak bir yol ve tam temel 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 olarak 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 belirten 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(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>)

Belirtilen yolun kökünden sonra gelen bir dizin ayırıcısını keser.

TrimEndingDirectorySeparator(String)

Belirtilen yolun kökünden sonra gelen bir dizin ayırıcısını 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ığıyla 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.