File.Move Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Name | Description |
|---|---|
| Move(String, String) |
Přesune zadaný soubor do nového umístění a poskytne možnost zadat nový název souboru. |
| Move(String, String, Boolean) |
Přesune zadaný soubor do nového umístění a poskytne možnosti pro zadání nového názvu souboru a nahrazení cílového souboru, pokud již existuje. |
Move(String, String)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Přesune zadaný soubor do nového umístění a poskytne možnost zadat nový název souboru.
public:
static void Move(System::String ^ sourceFileName, System::String ^ destFileName);
public static void Move(string sourceFileName, string destFileName);
static member Move : string * string -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String)
Parametry
- sourceFileName
- String
Název souboru, který chcete přesunout. Může obsahovat relativní nebo absolutní cestu.
- destFileName
- String
Nová cesta a název souboru.
Výjimky
destFileName již existuje.
nebo
Došlo k vstupně-výstupní chybě, například při kopírování souboru mezi diskovými svazky.
sourceFileName nebyl nalezen.
sourceFileName nebo destFileName je null.
Verze .NET Framework a .NET Core starší než 2.1: sourceFileName nebo destFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .
Volající nemá požadované oprávnění.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Cesta zadaná v sourceFileName nebo destFileName je neplatná (například je na nemapované jednotce).
sourceFileName nebo destFileName je v neplatném formátu.
Příklady
Následující příklad přesune soubor.
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp2\MyTest.txt";
try
{
if (!File.Exists(path))
{
// This statement ensures that the file is created,
// but the handle is not kept.
using (FileStream fs = File.Create(path)) {}
}
// Ensure that the target does not exist.
if (File.Exists(path2))
File.Delete(path2);
// Move the file.
File.Move(path, path2);
Console.WriteLine("{0} was moved to {1}.", path, path2);
// See if the original exists now.
if (File.Exists(path))
{
Console.WriteLine("The original file still exists, which is unexpected.");
}
else
{
Console.WriteLine("The original file no longer exists, which is expected.");
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
let path2 = @"c:\temp2\MyTest.txt"
if File.Exists path |> not then
// This statement ensures that the file is created,
// but the handle is not kept.
use _ = File.Create path
()
// Ensure that the target does not exist.
if File.Exists path2 then
File.Delete path2
// Move the file.
File.Move(path, path2)
printfn $"{path} was moved to {path2}."
// See if the original exists now.
if File.Exists path then
printfn "The original file still exists, which is unexpected."
else
printfn "The original file no longer exists, which is expected."
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim path2 As String = "c:\temp2\MyTest.txt"
Try
If File.Exists(path) = False Then
' This statement ensures that the file is created,
' but the handle is not kept.
Dim fs As FileStream = File.Create(path)
fs.Close()
End If
' Ensure that the target does not exist.
If File.Exists(path2) Then
File.Delete(path2)
End If
' Move the file.
File.Move(path, path2)
Console.WriteLine("{0} moved to {1}", path, path2)
' See if the original file exists now.
If File.Exists(path) Then
Console.WriteLine("The original file still exists, which is unexpected.")
Else
Console.WriteLine("The original file no longer exists, which is expected.")
End If
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Poznámky
Tato metoda funguje na svazcích disků a nevyvolá výjimku, pokud zdroj a cíl jsou stejné.
Všimněte si, že pokud se pokusíte nahradit soubor přesunutím souboru se stejným názvem do tohoto adresáře, IOException vyvolá se chyba. Chcete-li se tomuto problému vyhnout:
V .NET Core 3.0 a novějších verzích můžete volat Move(String, String, Boolean) nastavení parametru
overwritenatrue, který nahradí soubor, pokud existuje.Ve všech verzích .NET můžete volat Copy(String, String, Boolean) kopírování s přepsáním a pak voláním
Deleteodebrat nadbytečný zdrojový soubor. Tato strategie není atomická, protože při chybovém ukončeníCopysystému nebo programu může zanechat částečně napsaný cílový soubor, ale zajistí, aby v cíli vždy existoval (pravděpodobně neúplný) soubor.Ve všech verzích .NET můžete volat Delete(String) před voláním
Move, což odstraní pouze soubor, pokud existuje.
Argumenty sourceFileName mohou destFileName obsahovat 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.
Přesunutí souboru mezi diskovými svazky odpovídá zkopírování souboru a jeho odstranění ze zdroje, pokud kopírování proběhlo úspěšně.
Pokud se pokusíte přesunout soubor mezi diskovými svazky a tento soubor se používá, zkopíruje se do cíle, ale neodstraní se ze zdroje.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.
Viz také
Platí pro
Move(String, String, Boolean)
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
- Zdroj:
- File.cs
Přesune zadaný soubor do nového umístění a poskytne možnosti pro zadání nového názvu souboru a nahrazení cílového souboru, pokud již existuje.
public:
static void Move(System::String ^ sourceFileName, System::String ^ destFileName, bool overwrite);
public static void Move(string sourceFileName, string destFileName, bool overwrite);
static member Move : string * string * bool -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String, overwrite As Boolean)
Parametry
- sourceFileName
- String
Název souboru, který chcete přesunout. Může obsahovat relativní nebo absolutní cestu.
- destFileName
- String
Nová cesta a název souboru.
- overwrite
- Boolean
true nahradit cílový soubor, pokud již existuje; false Jinak.
Výjimky
destFileName již existuje a overwrite je false.
nebo
Došlo k vstupně-výstupní chybě, například při kopírování souboru mezi diskovými svazky.
sourceFileName nebyl nalezen.
sourceFileName nebo destFileName je null.
Verze .NET Framework a .NET Core starší než 2.1: sourceFileName nebo destFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .
Volající nemá požadované oprávnění.
nebo
Operační systém se nepodařilo získat výhradní přístup k cílovému souboru.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Cesta zadaná v sourceFileName nebo destFileName je neplatná (například je na nemapované jednotce).
sourceFileName nebo destFileName je v neplatném formátu.
Příklady
Následující příklad přesune soubor.
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp2\MyTest.txt";
try
{
if (!File.Exists(path))
{
// This statement ensures that the file is created,
// but the handle is not kept.
using (FileStream fs = File.Create(path)) {}
}
// Ensure that the target does not exist.
if (File.Exists(path2))
File.Delete(path2);
// Move the file.
File.Move(path, path2);
Console.WriteLine("{0} was moved to {1}.", path, path2);
// See if the original exists now.
if (File.Exists(path))
{
Console.WriteLine("The original file still exists, which is unexpected.");
}
else
{
Console.WriteLine("The original file no longer exists, which is expected.");
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
let path2 = @"c:\temp2\MyTest.txt"
if File.Exists path |> not then
// This statement ensures that the file is created,
// but the handle is not kept.
use _ = File.Create path
()
// Ensure that the target does not exist.
if File.Exists path2 then
File.Delete path2
// Move the file.
File.Move(path, path2)
printfn $"{path} was moved to {path2}."
// See if the original exists now.
if File.Exists path then
printfn "The original file still exists, which is unexpected."
else
printfn "The original file no longer exists, which is expected."
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim path2 As String = "c:\temp2\MyTest.txt"
Try
If File.Exists(path) = False Then
' This statement ensures that the file is created,
' but the handle is not kept.
Dim fs As FileStream = File.Create(path)
fs.Close()
End If
' Ensure that the target does not exist.
If File.Exists(path2) Then
File.Delete(path2)
End If
' Move the file.
File.Move(path, path2)
Console.WriteLine("{0} moved to {1}", path, path2)
' See if the original file exists now.
If File.Exists(path) Then
Console.WriteLine("The original file still exists, which is unexpected.")
Else
Console.WriteLine("The original file no longer exists, which is expected.")
End If
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Poznámky
Tato metoda funguje na svazcích disků a nevyvolá výjimku, pokud zdroj a cíl jsou stejné.
Argumenty sourceFileName mohou destFileName obsahovat 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.
Přesunutí souboru mezi diskovými svazky odpovídá zkopírování souboru a jeho odstranění ze zdroje, pokud kopírování proběhlo úspěšně.
Pokud se pokusíte přesunout soubor mezi diskovými svazky a tento soubor se používá, zkopíruje se do cíle, ale neodstraní se ze zdroje.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.