Condividi tramite


Directory.Move(String, String) Metodo

Definizione

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

public:
 static void Move(System::String ^ sourceDirName, System::String ^ destDirName);
public static void Move (string sourceDirName, string destDirName);
static member Move : string * string -> unit
Public Shared Sub Move (sourceDirName As String, destDirName As String)

Parametri

sourceDirName
String

Percorso del file o della directory da spostare.

destDirName
String

Percorso della nuova posizione per sourceDirName o il relativo contenuto. Se sourceDirName è un file, anche destDirName deve essere un nome file.

Eccezioni

È stato effettuato un tentativo di spostare una directory in un diverso volume.

-oppure-

destDirName esiste già. Vedere la nota nella sezione Osservazioni.

-oppure-

I parametri sourceDirName e destDirName fanno riferimento allo stesso file o alla stessa directory.

-oppure-

La directory o un file in essa contenuto è usata da un altro processo.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: sourceDirName oppure destDirName è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. Per cercare i caratteri non validi, usare il metodo GetInvalidPathChars().

sourceDirName o destDirName è null.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.

Il percorso specificato da sourceDirName non è valido (ad esempio si trova in un'unità non mappata).

Esempio

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

Questo metodo crea una nuova directory con il nome specificato da destDirName e sposta il contenuto di sourceDirName, inclusi file e directory, nella directory di destinazione appena creata. Elimina quindi la sourceDirName directory.

Se si tenta di spostare una directory in una directory già esistente, si verificherà un oggetto IOException .

Gli sourceDirName argomenti e destDirName sono autorizzati a specificare informazioni relative o assolute sul percorso. Le informazioni relative sul percorso sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

Gli spazi finali vengono rimossi dalla fine dei parametri del percorso prima di spostare la directory.

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

Nota

A partire da .NET Core 3.0, il Move metodo genera un'eccezione IOException in tutte le piattaforme quando esiste destDirName già . In .NET Core 2.2 e versioni precedenti, l'eccezione è stata generata solo in Windows e altre piattaforme potrebbero eseguire il failover o sovrascrivere .destDirName Vedere Ridenominazione di C++.

Si applica a

Vedi anche