Esporta (0) Stampa
Espandi tutto

Classe Path

Esegue operazioni sulle istanze String che contengono informazioni sul percorso di file o directory. Le operazioni vengono eseguite su più piattaforme.

Spazio dei nomi: System.IO
Assembly: mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)] 
public static class Path
/** @attribute ComVisibleAttribute(true) */ 
public final class Path
ComVisibleAttribute(true) 
public final class Path

.NET Framework non supporta l'accesso diretto ai dischi fisici attraverso percorsi costituiti da nomi di periferiche, quale "\\.\PHYSICALDRIVE0".

Un percorso è una stringa che fornisce la posizione di un file o di una directory e non fa riferimento necessariamente a una posizione nel disco; ad esempio potrebbe corrispondere a una posizione in memoria o in una periferica. Il formato esatto di un percorso è determinato dalla piattaforma corrente. In alcuni sistemi, ad esempio, un percorso può iniziare con la lettera di un'unità o di un volume, mentre in altri questo elemento è assente. In alcuni sistemi, i percorsi dei file possono contenere estensioni che indicano il tipo di informazioni memorizzate nel file. Il formato dell'estensione di un nome di file dipende dalla piattaforma; alcuni sistemi limitano ad esempio le estensioni a tre caratteri, altri no. La piattaforma corrente determina anche il set di caratteri utilizzato per separare gli elementi di un percorso e il set di caratteri non consentito per la specifica dei percorsi. Date queste differenze, i campi della classe Path e il comportamento specifico di alcuni membri della classe Path dipendono dalla piattaforma.

Un percorso può contenere informazioni sulla posizione assoluta o relativa. I percorsi assoluti specificano interamente una posizione: il file o la directory possono essere identificati in modo univoco a prescindere dalla posizione corrente. I percorsi relativi specificano una posizione in modo parziale: quando si individua un file specificato con un percorso relativo, la posizione corrente viene utilizzata come punto iniziale. Per determinare la directory corrente, chiamare Directory.GetCurrentDirectory.

La maggior parte dei membri della classe Path non interagisce con il file system e non verifica l'esistenza del file specificato da una stringa di percorso. I membri della classe Path che modificano una stringa di percorso, ad esempio ChangeExtension, non producono alcun effetto sui nomi dei file nel file system. I membri della classe Path convalidano però i contenuti di una stringa di percorso specificata e generano un oggetto ArgumentException, se la stringa contiene caratteri che non sono validi nelle stringhe di percorso, come definito in InvalidPathChars. Nelle piattaforme desktop basate su Windows, ad esempio, fra i caratteri non validi potrebbero rientrare le virgolette (") e i simboli minore di (<), maggiore di (>), pipe (|), backspace (\b), null (\0) e i caratteri Unicode dal 16 al 18 e dal 20 al 25.

I membri della classe Path consentono di eseguire rapidamente e facilmente operazioni comuni, ad esempio consentono di determinare se l'estensione di un nome di file è parte di un percorso e di combinare due stringhe in un nome di percorso.

Tutti i membri della classe Path sono statici e pertanto possono essere chiamati senza avere un'istanza di un percorso.

NotaNota

Nei membri che accettano un percorso come stringa di input, il formato di tale percorso deve essere corretto; in caso contrario verrà generata un'eccezione. Se un percorso, ad esempio, è completo ma inizia con uno spazio, lo spazio non verrà eliminato nei metodi della classe. Il formato risulterà pertanto scorretto e verrà generata un'eccezione. Analogamente, un percorso o una combinazione di percorsi non possono essere specificati completamente due volte. Anche "c:\temp c:\windows", ad esempio, nella maggior parte dei casi genera un'eccezione. Quando si utilizzano metodi che accettano una stringa di percorso, assicurarsi che i percorsi abbiano il formato corretto.

Nei membri che accettano un percorso, quest'ultimo può fare riferimento a un file o solo a una directory. Il percorso specificato può anche fare riferimento a un percorso relativo o UNC (Universal Naming Convention) per un server e un nome di condivisione. Tutti i seguenti percorsi, ad esempio, sono accettabili:

  • "c:\\MyDir\\MyFile.txt" in C#, o "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C#, o "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C#, o "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C#, o "\\MyServer\MyShare" in Visual Basic.

Dato che tutte queste operazioni vengono eseguite su stringhe, è impossibile verificare se i risultati sono validi in tutti gli scenari. Il metodo GetExtension, ad esempio, analizza la stringa passata e restituisce l'estensione a partire da essa, indipendentemente dalla presenza reale nel disco di un file con quell'estensione.

Per un esempio sull'utilizzo di questa classe, vedere di seguito la sezione relativa all'esempio. Nella tabella che segue vengono elencati esempi di altre attività di I/O tipiche o correlate.

Per eseguire questa operazione...

Vedere l'esempio in questo argomento...

Creazione di un file di testo.

Procedura: scrivere testo su un file

Scrittura in un file di testo.

Procedura: scrivere testo su un file

Lettura da un file di testo.

Procedura: leggere testo da un file

Recupero di un'estensione del nome di file.

GetExtension

Recupero del percorso completo di un file.

GetFullPath

Recupero del nome e dell'estensione del file da un percorso.

GetFileName

Recupero del solo nome file da un percorso.

GetFileNameWithoutExtension

Recupero del solo nome directory da un percorso.

GetDirectoryName

Modifica dell'estensione di un file.

ChangeExtension

Determinazione dell'esistenza di una directory.

Exists

Determinazione dell'esistenza di un file.

Exists

Nell'esempio di codice riportato di seguito vengono illustrati alcuni membri principali della classe Path.

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.
         */
    }
}

import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        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.):");
        char c = ' ';
        for (int iCtr = 0; iCtr < Path.InvalidPathChars.get_Length(); iCtr++) {
            c = Path.InvalidPathChars[iCtr];
            Console.WriteLine(c);
        }
    } //main
} //Test

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft