Sdílet prostřednictvím


Directory.Move(String, String) Metoda

Definice

Přesune soubor nebo adresář a jeho obsah do nového umístění.

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)

Parametry

sourceDirName
String

Cesta k souboru nebo adresáři, který chcete přesunout.

destDirName
String

Cesta k novému umístění nebo sourceDirName jeho obsahu. Pokud sourceDirName se jedná o soubor, destDirName musí to být také název souboru.

Výjimky

Došlo k pokusu o přesunutí adresáře na jiný svazek.

nebo

destDirName již existuje. Podívejte se na poznámku v části Poznámky.

nebo

Parametry sourceDirName odkazují destDirName na stejný soubor nebo adresář.

nebo

Adresář nebo soubor v něm je používán jiným procesem.

Volající nemá požadované oprávnění.

Verze .NET Framework a .NET Core starší než 2.1: sourceDirName nebo destDirName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .

sourceDirName nebo destDirName je null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

Cesta zadaná službou sourceDirName je neplatná (například je na nemapované jednotce).

Příklady

Následující příklad ukazuje, jak přesunout adresář a všechny jeho soubory do nového adresáře. Původní adresář již po přesunutí neexistuje.

using System;
using System.IO;

partial class Program
{
    static void DirectoryMoveExample()
    {
        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

Partial Class Program
    Shared Sub DirectoryMoveExample()

        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 Class

Poznámky

Tato metoda vytvoří nový adresář s názvem určeným destDirName a přesune obsah sourceDirNamesouborů a adresářů do nově vytvořeného cílového adresáře. Potom adresář odstraní sourceDirName .

Pokud se pokusíte přesunout adresář do adresáře, který již existuje, dojde k chybě IOException .

Argumenty sourceDirName a destDirName argumenty umožňují zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Aktuální pracovní adresář získáte v tématu GetCurrentDirectory.

Koncové mezery se před přesunutím adresáře odeberou z konce parametrů cesty.

Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Poznámka:

Počínaje .NET Core 3.0 vyvolá Move metoda IOException ve všech platformách, pokud destDirName již existuje. Viz přejmenování C++.

Platí pro

Viz také