Path Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voert bewerkingen uit op String exemplaren die bestands- of mappadgegevens bevatten. Deze bewerkingen worden op een platformoverschrijdende manier uitgevoerd.
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
- Overname
-
Path
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u enkele van de belangrijkste leden van de Path klas.
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
Opmerkingen
Een pad is een tekenreeks die de locatie van een bestand of map biedt. Een pad wijst niet noodzakelijkerwijs naar een locatie op schijf; Een pad kan bijvoorbeeld worden toegewezen aan een locatie in het geheugen of op een apparaat. De exacte indeling van een pad wordt bepaald door het huidige platform. Op sommige systemen kan een pad bijvoorbeeld beginnen met een stations- of volumeletter, terwijl dit element niet aanwezig is in andere systemen. Op sommige systemen kunnen bestandspaden extensies bevatten, die aangeven welk type informatie in het bestand is opgeslagen. De indeling van een bestandsnaamextensie is platformafhankelijk; Sommige systemen beperken bijvoorbeeld extensies tot drie tekens (zoals FAT16 die vaak worden gebruikt voor kleinere flashopslag en oudere versies van ISO 9660 die op optische media worden gebruikt) en andere niet. Het huidige platform bepaalt ook de set tekens die worden gebruikt om de elementen van een pad te scheiden en de set tekens die niet kunnen worden gebruikt bij het opgeven van paden. Vanwege deze verschillen zijn de velden van de Path klasse en het exacte gedrag van sommige leden van de Path klasse afhankelijk van het platform.
Een pad kan absolute of relatieve locatiegegevens bevatten. Absolute paden geven een locatie volledig op: het bestand of de map kan uniek worden geïdentificeerd, ongeacht de huidige locatie. Relatieve paden geven een gedeeltelijke locatie op: de huidige locatie wordt gebruikt als uitgangspunt bij het zoeken naar een bestand dat is opgegeven met een relatief pad. Als u de huidige map wilt bepalen, roept u het aan Directory.GetCurrentDirectory.
Dit type ondersteunt ook toegang tot bestandssysteemobjecten die apparaatnamen zijn, zoals \\?\C:\. Ondersteuning voor apparaatnamen is toegevoegd in .NET Framework 4.6.2.
Zie Bestandspadindelingen op Windows systemen voor meer informatie over bestandspadindelingen op Windows.
De meeste leden van de Path klasse communiceren niet met het bestandssysteem en verifiëren niet het bestaan van het bestand dat is opgegeven door een padtekenreeks.
Path klasseleden die een padtekenreeks wijzigen, zoals ChangeExtension, hebben geen invloed op de namen van bestanden in het bestandssysteem.
Sommige Path leden valideren de inhoud van een opgegeven padtekenreeks en genereren een ArgumentException als de tekenreeks tekens bevat die niet geldig zijn in padtekenreeksen, zoals gedefinieerd in de tekens die worden geretourneerd door de GetInvalidPathChars methode. Op Windows bureaubladplatformen kunnen ongeldige padtekens bijvoorbeeld aanhalingstekens ("), kleiner dan (<), groter dan (>), pipe (|), backspace (\b), null (\0) en Unicode-tekens 16 tot en met 18 en 20 tot en met 25 bevatten. Dit validatiegedrag varieert tussen .NET versies:
In .NET Framework: Alle
Pathleden die een pad als argument nemen, gooien een ArgumentException als ze ongeldige padtekens detecteren.Op .NET: GetFullPath is het enige lid dat een ArgumentException genereert als de tekenreeks ongeldige padtekens bevat.
Met de leden van de Path klasse kunt u snel en eenvoudig algemene bewerkingen uitvoeren, zoals het bepalen of een bestandsnaamextensie deel uitmaakt van een pad en twee tekenreeksen combineert in één padnaam.
Alle leden van de Path klasse zijn statisch en kunnen daarom worden aangeroepen zonder een exemplaar van een pad te hebben.
Note
In leden die een pad als invoertekenreeks accepteren, moet dat pad goed zijn gevormd of wordt er een uitzondering gegenereerd. Als een pad bijvoorbeeld volledig is gekwalificeerd, maar begint met een spatie, wordt het pad niet ingekort in methoden van de klasse. Het pad is daarom ongeldig en er wordt een uitzondering gegenereerd. Op dezelfde manier kan een pad of een combinatie van paden niet twee keer volledig worden gekwalificeerd. Met 'c:\temp c:\windows' wordt in de meeste gevallen ook een uitzondering gegenereerd. Zorg ervoor dat uw paden goed zijn opgemaakt wanneer u methoden gebruikt die een padtekenreeks accepteren.
In leden die een pad accepteren, kan het pad verwijzen naar een bestand of alleen een map. Het opgegeven pad kan ook verwijzen naar een relatief pad of een UNC-pad (Universal Naming Convention) voor een server en sharenaam. Zo zijn alle volgende acceptabele paden:
"c:\\MyDir\\MyFile.txt" in C# of "c:\MyDir\MyFile.txt" in Visual Basic.
"c:\\MyDir" in C# of "c:\MyDir" in Visual Basic.
"MyDir\\MySubdir" in C# of "MyDir\MySubDir" in Visual Basic.
"\\\\MyServer\\MyShare" in C# of "\\MyServer\MyShare" in Visual Basic.
Omdat al deze bewerkingen worden uitgevoerd op tekenreeksen, is het onmogelijk om te controleren of de resultaten geldig zijn in alle scenario's. De GetExtension methode parseert bijvoorbeeld een tekenreeks die u eraan doorgeeft en retourneert de extensie van die tekenreeks. Dit betekent echter niet dat er een bestand met die extensie op de schijf bestaat.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Velden
| Name | Description |
|---|---|
| AltDirectorySeparatorChar |
Biedt een platformspecifiek alternatief teken dat wordt gebruikt om mapniveaus te scheiden in een padtekenreeks die een hiërarchische bestandssysteemorganisatie weerspiegelt. |
| DirectorySeparatorChar |
Biedt een platformspecifiek teken dat wordt gebruikt om mapniveaus te scheiden in een padtekenreeks die een hiërarchische bestandssysteemorganisatie weerspiegelt. |
| InvalidPathChars |
Verouderd.
Biedt een platformspecifieke matrix met tekens die niet kunnen worden opgegeven in padtekenreeksargumenten die worden doorgegeven aan leden van de Path klasse. |
| PathSeparator |
Een platformspecifiek scheidingsteken dat wordt gebruikt om padtekenreeksen in omgevingsvariabelen te scheiden. |
| VolumeSeparatorChar |
Biedt een platformspecifiek volumescheidingsteken. |
Methoden
| Name | Description |
|---|---|
| ChangeExtension(String, String) |
Hiermee wijzigt u de extensie van een padtekenreeks. |
| Combine(String, String, String, String) |
Hiermee worden vier tekenreeksen gecombineerd tot een pad. |
| Combine(String, String, String) |
Combineert drie tekenreeksen in een pad. |
| Combine(String, String) |
Combineert twee tekenreeksen in een pad. |
| Combine(String[]) |
Combineert een matrix met tekenreeksen in een pad. |
| GetDirectoryName(ReadOnlySpan<Char>) |
Retourneert de mapgegevens voor het opgegeven pad dat wordt vertegenwoordigd door een tekenbereik. |
| GetDirectoryName(String) |
Retourneert de mapgegevens voor het opgegeven pad. |
| GetExtension(ReadOnlySpan<Char>) |
Retourneert de extensie van een bestandspad dat wordt vertegenwoordigd door een alleen-lezen tekenbereik. |
| GetExtension(String) |
Retourneert de extensie (inclusief de punt ".") van de opgegeven padtekenreeks. |
| GetFileName(ReadOnlySpan<Char>) |
Retourneert de bestandsnaam en extensie van een bestandspad dat wordt vertegenwoordigd door een alleen-lezen tekenbereik. |
| GetFileName(String) |
Retourneert de bestandsnaam en extensie van de opgegeven padtekenreeks. |
| GetFileNameWithoutExtension(ReadOnlySpan<Char>) |
Retourneert de bestandsnaam zonder de extensie van een bestandspad dat wordt vertegenwoordigd door een alleen-lezen tekenbereik. |
| GetFileNameWithoutExtension(String) |
Retourneert de bestandsnaam van de opgegeven padtekenreeks zonder de extensie. |
| GetFullPath(String, String) |
Retourneert een absoluut pad van een relatief pad en een volledig gekwalificeerde basispad. |
| GetFullPath(String) |
Retourneert het absolute pad voor de opgegeven padtekenreeks. |
| GetInvalidFileNameChars() |
Hiermee haalt u een matrix op die de tekens bevat die niet zijn toegestaan in bestandsnamen. |
| GetInvalidPathChars() |
Hiermee haalt u een matrix op die de tekens bevat die niet zijn toegestaan in padnamen. |
| GetPathRoot(ReadOnlySpan<Char>) |
Hiermee haalt u de hoofdmapgegevens op van het pad in het opgegeven tekenbereik. |
| GetPathRoot(String) |
Hiermee haalt u de hoofdmapgegevens op uit het pad in de opgegeven tekenreeks. |
| GetRandomFileName() |
Retourneert een willekeurige mapnaam of bestandsnaam. |
| GetRelativePath(String, String) |
Retourneert een relatief pad van het ene pad naar het andere. |
| GetTempFileName() |
Hiermee maakt u een uniek tijdelijk bestand met de naam nul-byte op schijf en retourneert u het volledige pad van dat bestand. |
| GetTempPath() |
Retourneert het pad van de tijdelijke map van de huidige gebruiker. |
| HasExtension(ReadOnlySpan<Char>) |
Bepaalt of het pad dat wordt vertegenwoordigd door het opgegeven tekenbereik een bestandsnaamextensie bevat. |
| HasExtension(String) |
Bepaalt of een pad een bestandsnaamextensie bevat. |
| IsPathFullyQualified(ReadOnlySpan<Char>) |
Retourneert een waarde die aangeeft of het bestandspad dat wordt vertegenwoordigd door de opgegeven tekenspanne is vastgezet aan een specifiek station of UNC-pad. |
| IsPathFullyQualified(String) |
Retourneert een waarde die aangeeft of het opgegeven bestandspad is vastgezet aan een specifiek station of UNC-pad. |
| IsPathRooted(ReadOnlySpan<Char>) |
Retourneert een waarde die aangeeft of het opgegeven tekenbereik dat een bestandspad vertegenwoordigt een hoofdmap bevat. |
| IsPathRooted(String) |
Retourneert een waarde die aangeeft of de opgegeven padtekenreeks een hoofdtekenreeks bevat. |
| Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Voegt drie padonderdelen samen in één pad. |
| Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Voegt twee padonderdelen samen in één pad. |
| TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32) |
Hiermee worden drie padonderdelen samengevoegd tot één vooraf toegewezen tekenbereik en wordt een waarde geretourneerd die aangeeft of de bewerking is geslaagd. |
| TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32) |
Hiermee probeert u twee padonderdelen samen te stellen aan één vooraf toegewezen tekenbereik en wordt een waarde geretourneerd die aangeeft of de bewerking is geslaagd. |