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í pro sourceDirName nebo jeho obsah. Pokud sourceDirName je 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 a destDirName odkazují 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í.

.NET Framework a .NET Core verze 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 určená parametrem sourceDirName je neplatná (například se nachází na nenamapované 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ář po přesunutí již neexistuje.

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

Poznámky

Tato metoda vytvoří nový adresář s názvem určeným parametrem destDirName a přesune obsah sourceDirNamesouboru , včetně souborů 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 mohou určovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Pokud chcete získat aktuální pracovní adresář, přečtěte si téma 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 metoda vyvolá chybu na IOException všech platformách, Move pokud destDirName už existuje. V .NET Core 2.2 a předchozích verzích byla výjimka vyvolána pouze ve Windows a jiné platformy mohly převzít služby při selhání nebo přepsat destDirName. Viz Přejmenování jazyka C++.

Platí pro

Viz také