Path Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje operacje na String wystąpieniach zawierających informacje o pliku lub ścieżce katalogu. Te operacje są wykonywane w sposób międzyplatformowy.
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
- Dziedziczenie
-
Path
- Atrybuty
Przykłady
W poniższym przykładzie pokazano niektóre z głównych składowych Path
klasy.
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
Uwagi
Ścieżka to ciąg, który udostępnia lokalizację pliku lub katalogu. Ścieżka nie musi wskazywać lokalizacji na dysku; na przykład ścieżka może być mapowana na lokalizację w pamięci lub na urządzeniu. Dokładny format ścieżki zależy od bieżącej platformy. Na przykład w niektórych systemach ścieżka może rozpoczynać się od dysku lub litery woluminu, podczas gdy ten element nie jest obecny w innych systemach. W niektórych systemach ścieżki plików mogą zawierać rozszerzenia, które wskazują typ informacji przechowywanych w pliku. Format rozszerzenia nazwy pliku jest zależny od platformy; Na przykład niektóre systemy ograniczają rozszerzenia do trzech znaków (takich jak FAT16 często używane w mniejszym magazynie flash i starszych wersjach ISO 9660 używanych na nośniku optycznym), a inne nie. Bieżąca platforma określa również zestaw znaków używany do oddzielania elementów ścieżki oraz zestawu znaków, których nie można używać podczas określania ścieżek. Ze względu na te różnice pola Path
klasy, a także dokładne zachowanie niektórych składowych Path
klasy są zależne od platformy.
Ścieżka może zawierać informacje o lokalizacji bezwzględnej lub względnej. Ścieżki bezwzględne w pełni określają lokalizację: plik lub katalog można jednoznacznie zidentyfikować niezależnie od bieżącej lokalizacji. Ścieżki względne określają lokalizację częściową: bieżąca lokalizacja jest używana jako punkt wyjścia podczas lokalizowania pliku określonego przy użyciu ścieżki względnej. Aby określić bieżący katalog, wywołaj metodę Directory.GetCurrentDirectory.
Program .NET Core 1.1 i nowsze wersje oraz .NET Framework 4.6.2 i nowsze wersje obsługują również dostęp do obiektów systemu plików, które są nazwami urządzeń, takich jak "\\?\C:\".
Aby uzyskać więcej informacji na temat formatów ścieżek plików w systemie Windows, zobacz Formaty ścieżek plików w systemach Windows.
Większość elementów członkowskich Path
klasy nie wchodzi w interakcję z systemem plików i nie weryfikuje istnienia pliku określonego przez ciąg ścieżki. Path
składowe klasy modyfikujące ciąg ścieżki, taki jak ChangeExtension, nie mają wpływu na nazwy plików w systemie plików.
Niektórzy Path
członkowie weryfikują zawartość określonego ciągu ścieżki i zgłaszają ArgumentException , czy ciąg zawiera znaki, które nie są prawidłowe w ciągach ścieżki, zgodnie z definicją w znakach zwracanych z GetInvalidPathChars metody . Na przykład na platformach klasycznych opartych na systemie Windows nieprawidłowe znaki ścieżki mogą zawierać cudzysłów ("), mniejsze niż (<), większe niż (), potok (>|), backspace (\b), null (\0) i znaki Unicode od 16 do 18 i 20 do 25. To zachowanie sprawdzania poprawności różni się w zależności od wersji platformy .NET:
Na .NET Framework i .NET Core w wersjach starszych niż 2.1: wszystkie
Path
elementy członkowskie, które przyjmują ścieżkę jako argument, zgłaszająArgumentException, jeśli wykryją nieprawidłowe znaki ścieżki.Na platformie .NET Core 2.1 i nowszych wersjach: GetFullPath jest jedynym elementem członkowskim zgłaszanym ArgumentException , jeśli ciąg zawiera nieprawidłowe znaki ścieżki.
Składowe Path
klasy umożliwiają szybkie i łatwe wykonywanie typowych operacji, takich jak określanie, czy rozszerzenie nazwy pliku jest częścią ścieżki, i łączenie dwóch ciągów w jedną nazwę ścieżki.
Wszystkie składowe Path
klasy są statyczne i dlatego mogą być wywoływane bez wystąpienia ścieżki.
Uwaga
W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub zgłaszany jest wyjątek. Jeśli na przykład ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycinana w metodach klasy. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek. Podobnie ścieżka lub kombinacja ścieżek nie może być w pełni kwalifikowana dwukrotnie. Na przykład "c:\temp c:\windows" również zgłasza wyjątek w większości przypadków. Upewnij się, że ścieżki są prawidłowo sformułowane podczas używania metod, które akceptują ciąg ścieżki.
W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu. Określona ścieżka może również odwoływać się do ścieżki względnej lub ścieżki Universal Naming Convention (UNC) dla serwera i nazwy udziału. Na przykład wszystkie następujące ścieżki są dopuszczalne:
"c:\\MyDir\\MyFile.txt" w języku C# lub "c:\MyDir\MyFile.txt" w języku Visual Basic.
"c:\\MyDir" w języku C# lub "c:\MyDir" w Visual Basic.
"MyDir\\MySubdir" w języku C# lub "MyDir\MySubDir" w Visual Basic.
"\\\MyServer\\MyShare" w języku C# lub "\MyServer\MyShare" w Visual Basic.
Ponieważ wszystkie te operacje są wykonywane na ciągach, nie można sprawdzić, czy wyniki są prawidłowe we wszystkich scenariuszach. Na przykład GetExtension metoda analizuje ciąg przekazywany do niego i zwraca rozszerzenie z tego ciągu. Nie oznacza to jednak, że na dysku istnieje plik z tym rozszerzeniem.
Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.
Pola
AltDirectorySeparatorChar |
Udostępnia znak alternatywny specyficzny dla platformy używany do oddzielania poziomów katalogów w ciągu ścieżki, który odzwierciedla hierarchiczną organizację systemu plików. |
DirectorySeparatorChar |
Udostępnia znak specyficzny dla platformy używany do oddzielania poziomów katalogów w ciągu ścieżki, który odzwierciedla hierarchiczną organizację systemu plików. |
InvalidPathChars |
Przestarzałe.
Przestarzałe.
Zawiera tablicę znaków specyficzną dla platformy, której nie można określić w argumentach ciągu ścieżki przekazywanych do składowych Path klasy. |
PathSeparator |
Znak separatora specyficznego dla platformy używany do oddzielania ciągów ścieżki w zmiennych środowiskowych. |
VolumeSeparatorChar |
Zawiera znak separatora woluminu specyficznego dla platformy. |
Metody
ChangeExtension(String, String) |
Zmienia rozszerzenie ciągu ścieżki. |
Combine(String, String) |
Łączy dwa ciągi w ścieżkę. |
Combine(String, String, String) |
Łączy trzy ciągi w ścieżkę. |
Combine(String, String, String, String) |
Łączy cztery ciągi w ścieżkę. |
Combine(String[]) |
Łączy tablicę ciągów w ścieżkę. |
EndsInDirectorySeparator(ReadOnlySpan<Char>) |
Zwraca wartość wskazującą, czy ścieżka określona jako zakres tylko do odczytu kończy się separatorem katalogu. |
EndsInDirectorySeparator(String) |
Zwraca wartość wskazującą, czy określona ścieżka kończy się separatorem katalogu. |
Exists(String) |
Określa, czy określony plik lub katalog istnieje. |
GetDirectoryName(ReadOnlySpan<Char>) |
Zwraca informacje o katalogu dla określonej ścieżki reprezentowanej przez zakres znaków. |
GetDirectoryName(String) |
Zwraca informacje o katalogu dla określonej ścieżki. |
GetExtension(ReadOnlySpan<Char>) |
Zwraca rozszerzenie ścieżki pliku reprezentowanej przez zakres znaków tylko do odczytu. |
GetExtension(String) |
Zwraca rozszerzenie (w tym kropkę ".") określonego ciągu ścieżki. |
GetFileName(ReadOnlySpan<Char>) |
Zwraca nazwę pliku i rozszerzenie ścieżki pliku reprezentowanej przez zakres znaków tylko do odczytu. |
GetFileName(String) |
Zwraca nazwę pliku i rozszerzenie określonego ciągu ścieżki. |
GetFileNameWithoutExtension(ReadOnlySpan<Char>) |
Zwraca nazwę pliku bez rozszerzenia ścieżki pliku reprezentowanej przez zakres znaków tylko do odczytu. |
GetFileNameWithoutExtension(String) |
Zwraca nazwę pliku określonego ciągu ścieżki bez rozszerzenia. |
GetFullPath(String) |
Zwraca ścieżkę bezwzględną dla określonego ciągu ścieżki. |
GetFullPath(String, String) |
Zwraca ścieżkę bezwzględną ze ścieżki względnej i w pełni kwalifikowaną ścieżkę bazową. |
GetInvalidFileNameChars() |
Pobiera tablicę zawierającą znaki niedozwolone w nazwach plików. |
GetInvalidPathChars() |
Pobiera tablicę zawierającą znaki niedozwolone w nazwach ścieżek. |
GetPathRoot(ReadOnlySpan<Char>) |
Pobiera informacje o katalogu głównym ze ścieżki zawartej w określonym zakresie znaków. |
GetPathRoot(String) |
Pobiera informacje o katalogu głównym ze ścieżki zawartej w określonym ciągu. |
GetRandomFileName() |
Zwraca losową nazwę folderu lub nazwę pliku. |
GetRelativePath(String, String) |
Zwraca ścieżkę względną z jednej ścieżki do innej. |
GetTempFileName() |
Tworzy unikatowy plik tymczasowy o nazwie zero bajtów na dysku i zwraca pełną ścieżkę tego pliku. |
GetTempPath() |
Zwraca ścieżkę folderu tymczasowego bieżącego użytkownika. |
HasExtension(ReadOnlySpan<Char>) |
Określa, czy ścieżka reprezentowana przez określony zakres znaków zawiera rozszerzenie nazwy pliku. |
HasExtension(String) |
Określa, czy ścieżka zawiera rozszerzenie nazwy pliku. |
IsPathFullyQualified(ReadOnlySpan<Char>) |
Zwraca wartość wskazującą, czy ścieżka pliku reprezentowana przez określony zakres znaków jest stała dla określonego dysku lub ścieżki UNC. |
IsPathFullyQualified(String) |
Zwraca wartość wskazującą, czy określona ścieżka pliku jest stała dla określonego dysku, czy ścieżki UNC. |
IsPathRooted(ReadOnlySpan<Char>) |
Zwraca wartość wskazującą, czy określony zakres znaków reprezentujący ścieżkę pliku zawiera katalog główny. |
IsPathRooted(String) |
Zwraca wartość wskazującą, czy określony ciąg ścieżki zawiera katalog główny. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy dwa składniki ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy trzy składniki ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy cztery składniki ścieżki w jedną ścieżkę. |
Join(String, String) |
Łączy dwie ścieżki w jedną ścieżkę. |
Join(String, String, String) |
Łączy trzy ścieżki w jedną ścieżkę. |
Join(String, String, String, String) |
Łączy cztery ścieżki w jedną ścieżkę. |
Join(String[]) |
Łączy tablicę ścieżek w jedną ścieżkę. |
TrimEndingDirectorySeparator(ReadOnlySpan<Char>) |
Przycina jeden końcowy separator katalogu poza katalogiem głównym określonej ścieżki. |
TrimEndingDirectorySeparator(String) |
Przycina jeden końcowy separator katalogu poza katalogiem głównym określonej ścieżki. |
TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32) |
Próbuje połączyć trzy składniki ścieżki z pojedynczym wstępnie przydziałem zakresu znaków i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie. |
TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32) |
Próbuje połączyć dwa składniki ścieżki z pojedynczym wstępnie przydziałem zakresu znaków i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie. |
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla