Directory Classe

Definizione

Espone i metodi statici per la creazione, lo spostamento e l'enumerazione nelle directory e sottodirectory. La classe non può essere ereditata.

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Ereditarietà
Directory
Attributi

Esempio

Nell'esempio seguente viene illustrato come recuperare tutti i file di testo da una directory e spostarli in una nuova directory. Dopo aver spostato i file, non esistono più nella directory originale.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

Nell'esempio seguente viene illustrato come utilizzare il EnumerateFiles metodo per recuperare una raccolta di file di testo da una directory e quindi usare tale raccolta in una query per trovare tutte le righe contenenti "Example".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

Nell'esempio seguente viene illustrato come spostare una directory e tutti i relativi file in una nuova directory. La directory originale non esiste più dopo che è stata spostata.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Commenti

Usare la Directory classe per operazioni tipiche, ad esempio la copia, lo spostamento, la ridenominazione, la creazione e l'eliminazione di directory.

I metodi statici della Directory classe eseguono controlli di sicurezza su tutti i metodi. Se si intende riutilizzare un oggetto più volte, è consigliabile usare il metodo di istanza corrispondente di DirectoryInfo , perché il controllo di sicurezza non sarà sempre necessario.

Se si esegue una sola azione correlata alla directory, potrebbe essere più efficiente usare un metodo statico Directory anziché un metodo di istanza corrispondente DirectoryInfo . La maggior parte dei Directory metodi richiede il percorso della directory che si sta modificando.

Nota

Nei membri che accettano un parametro stringa path , tale percorso deve essere ben formato o viene generata un'eccezione. Ad esempio, se un percorso è completo ma inizia con uno spazio (" c:\temp"), la stringa di percorso non viene tagliata, quindi il percorso viene considerato in formato non valido e viene generata un'eccezione. Inoltre, un percorso o una combinazione di percorsi non può essere completo due volte. Ad esempio, anche "c:\temp c:\windows" genera un'eccezione. Assicurarsi che i percorsi siano ben formati quando si usano metodi che accettano una stringa di percorso. Per ulteriori informazioni, vedere Path.

Nei membri che accettano un percorso, il percorso può fare riferimento a un file o a una directory. È possibile usare un percorso completo, un percorso relativo o un percorso UNC (Universal Naming Convention) per un server e un nome di condivisione. Ad esempio, tutti i percorsi seguenti sono accettabili:

  • "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.

Per impostazione predefinita, l'accesso in lettura/scrittura completo alle nuove directory viene concesso a tutti gli utenti. Tuttavia, l'app deve disporre della sicurezza corretta per accedere alle directory esistenti.

Per richiedere autorizzazioni per una directory e tutte le relative sottodirectory, terminare la stringa di percorso con il carattere separatore di directory. Ad esempio, "C:\Temp\" concede l'accesso a C:\Temp\ e a tutte le relative sottodirectory. Per richiedere autorizzazioni solo per una directory specifica, terminare la stringa di percorso con un punto. Ad esempio, "C:\Temp\". concede l'accesso solo a C:\Temp\, non alle relative sottodirectory.

Nei membri che accettano un searchPattern parametro, la stringa di ricerca può essere qualsiasi combinazione di caratteri letterali e due caratteri jolly, * e ?. Questo parametro non riconosce le espressioni regolari. Per altre informazioni, vedere il EnumerateDirectories(String, String) metodo o qualsiasi altro metodo che usa il searchPattern parametro .

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Directory e DirectoryInfo non sono supportati per l'uso nelle app di Windows Store. Per informazioni su come accedere a file e cartelle nelle app di Windows Store, vedere Accesso a dati e file (app di Windows Store).

Metodi

CreateDirectory(String)

Crea tutte le directory e le sottodirectory nel percorso specificato a meno che non esistano già.

CreateDirectory(String, DirectorySecurity)

Crea tutte le directory nel percorso specificato, a meno che non esistano già, e applica la sicurezza di Windows specificata.

CreateDirectory(String, UnixFileMode)

Crea tutte le directory e le sottodirectory nel percorso specificato con le autorizzazioni specificate, a meno che non esistano già.

CreateSymbolicLink(String, String)

Crea un collegamento simbolico della directory identificato da path che punta a pathToTarget.

CreateTempSubdirectory(String)

Crea una directory vuota denominata in modo univoco nella directory temporanea dell'utente corrente.

Delete(String)

Elimina una directory vuota dal percorso specificato.

Delete(String, Boolean)

Elimina la directory specificata e, se indicate, le sottodirectory e i file in essa contenuti.

EnumerateDirectories(String)

Restituisce una raccolta enumerabile dei nomi completi di directory in un percorso specificato.

EnumerateDirectories(String, String)

Restituisce una raccolta enumerabile dei nomi completi di directory che corrispondono a un criterio di ricerca in un percorso specificato.

EnumerateDirectories(String, String, EnumerationOptions)

Restituisce una raccolta enumerabile dei nomi completi di directory che corrispondono a un criterio di ricerca in un percorso specificato e con ricerca facoltativa nelle sottodirectory.

EnumerateDirectories(String, String, SearchOption)

Restituisce una raccolta enumerabile dei nomi completi di directory che corrispondono a un criterio di ricerca in un percorso specificato e con ricerca facoltativa nelle sottodirectory.

EnumerateFiles(String)

Restituisce una raccolta enumerabile dei nomi di file completi in un percorso specificato.

EnumerateFiles(String, String)

Restituisce una raccolta enumerabile dei nomi di file completi che corrispondono a un criterio di ricerca in un percorso specificato.

EnumerateFiles(String, String, EnumerationOptions)

Restituisce una raccolta enumerabile dei nomi di file completi che corrispondono a un criterio di ricerca a alle opzioni di enumerazione in un percorso specificato, con ricerca facoltativa nelle sottodirectory.

EnumerateFiles(String, String, SearchOption)

Restituisce una raccolta enumerabile dei nomi di file completi che corrispondono a un criterio di ricerca in un percorso specificato e con ricerca facoltativa nelle sottodirectory.

EnumerateFileSystemEntries(String)

Restituisce una raccolta enumerabile di nomi di file e di directory in un percorso specificato.

EnumerateFileSystemEntries(String, String)

Restituisce una raccolta enumerabile di nomi di file e di directory che corrispondono a un criterio di ricerca in un percorso specificato.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Restituisce una raccolta enumerabile di nomi di file e di directory che corrispondono a un criterio di ricerca e alle opzioni di enumerazione in un percorso specificato.

EnumerateFileSystemEntries(String, String, SearchOption)

Restituisce una raccolta enumerabile di nomi di file e di directory che corrispondono a un criterio di ricerca in un percorso specificato e con ricerca facoltativa nelle sottodirectory.

Exists(String)

Determina se il percorso specificato fa riferimento a una directory esistente sul disco.

GetAccessControl(String)

Ottiene un oggetto DirectorySecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) di una directory specificata.

GetAccessControl(String, AccessControlSections)

Ottiene un oggetto DirectorySecurity che incapsula il tipo specificato di voci dell'elenco di controllo di accesso (ACL) per una directory specificata.

GetCreationTime(String)

Ottiene la data e l'ora di creazione di una directory.

GetCreationTimeUtc(String)

Ottiene la data e l'ora di creazione di una directory, con l'ora nel formato UTC (Coordinated Universal Time).

GetCurrentDirectory()

Ottiene la directory di lavoro corrente dell'applicazione.

GetDirectories(String)

Restituisce i nomi delle sottodirectory, inclusi i relativi percorsi, nella directory specificata.

GetDirectories(String, String)

Restituisce i nomi delle sottodirectory (inclusi i percorsi) corrispondenti al criterio di ricerca specificato nella directory specificata.

GetDirectories(String, String, EnumerationOptions)

Restituisce i nomi delle sottodirectory (inclusi i percorsi) corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati nella directory specificata.

GetDirectories(String, String, SearchOption)

Restituisce i nomi delle sottodirectory (incluso il relativo percorso) che corrispondono ai criteri di ricerca specificati nella directory specificata e con ricerca facoltativa nelle sottodirectory.

GetDirectoryRoot(String)

Restituisce le informazioni sul volume, sulla radice o su entrambi per il percorso specificato.

GetFiles(String)

Restituisce i nomi dei file, inclusi i relativi percorsi, nella directory specificata.

GetFiles(String, String)

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca specificato nella directory specificata.

GetFiles(String, String, EnumerationOptions)

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati nella directory specificata.

GetFiles(String, String, SearchOption)

Restituisce i nomi dei file (inclusi i percorsi) che corrispondono ai criteri di ricerca specificati nella directory specificata, utilizzando un valore per determinare se eseguire la ricerca nelle sottodirectory.

GetFileSystemEntries(String)

Restituisce i nomi di tutti i file e di tutte le sottodirectory in un percorso specificato.

GetFileSystemEntries(String, String)

Restituisce una matrice di nomi file e di nomi di directory che corrispondono a un criterio di ricerca in un percorso specificato.

GetFileSystemEntries(String, String, EnumerationOptions)

Restituisce una matrice di nomi di file e di directory che corrispondono a un criterio di ricerca e alle opzioni di enumerazione in un percorso specificato.

GetFileSystemEntries(String, String, SearchOption)

Restituisce una matrice di tutti i nomi di file e di directory che corrispondono a un criterio di ricerca in un percorso specificato e con ricerca facoltativa nelle sottodirectory.

GetLastAccessTime(String)

Restituisce la data e l'ora dell'ultimo accesso al file o alla directory specificata.

GetLastAccessTimeUtc(String)

Restituisce la data e l'ora, nel formato dell'ora UTC (Coordinated Universal Time), dell'ultimo accesso al file o alla directory specificata.

GetLastWriteTime(String)

Restituisce la data e l'ora dell'ultima scrittura nel file o nella directory specificata.

GetLastWriteTimeUtc(String)

Restituisce la data e l'ora, nel formato dell'ora UTC (Coordinated Universal Time), dell'ultima scrittura nel file o nella directory specificata.

GetLogicalDrives()

Recupera i nomi delle unità logiche nel computer nel formato "<lettera> di unità:\".

GetParent(String)

Recupera la directory padre del percorso specificato, inclusi il percorso assoluto e relativo.

Move(String, String)

Sposta un file o una directory e il suo contenuto in un nuovo percorso.

ResolveLinkTarget(String, Boolean)

Ottiene la destinazione del collegamento di directory specificato.

SetAccessControl(String, DirectorySecurity)

Applica le voci dell'elenco di controllo di accesso (ACL) descritte da un oggetto DirectorySecurity nella directory specificata.

SetCreationTime(String, DateTime)

Imposta la data e l'ora di creazione per il file o la directory specificata.

SetCreationTimeUtc(String, DateTime)

Imposta la data e l'ora di creazione, nel formato dell'ora UTC (Coordinated Universal Time), per il file o la directory specificata.

SetCurrentDirectory(String)

Imposta la directory di lavoro corrente dell'applicazione sulla directory specificata.

SetLastAccessTime(String, DateTime)

Imposta la data e l'ora dell'ultimo accesso al file o alla directory specificata.

SetLastAccessTimeUtc(String, DateTime)

Imposta la data e l'ora, nel formato dell'ora UTC (Coordinated Universal Time), dell'ultimo accesso al file o alla directory specificata.

SetLastWriteTime(String, DateTime)

Imposta la data e l'ora in cui è stata eseguita l'ultima scrittura in una directory.

SetLastWriteTimeUtc(String, DateTime)

Imposta la data e l'ora, nel formato dell'ora UTC (Coordinated Universal Time), dell'ultima scrittura in una directory.

Si applica a

Vedi anche