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í
Move(String, String) |
Přesune zadaný soubor do nového umístění s 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
Přesune zadaný soubor do nového umístění s 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ý se má 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 V/V chybě, například při kopírování souboru mezi diskovými svazky.
sourceFileName
nebyl nalezen.
sourceFileName
nebo destFileName
je null
.
.NET Framework a .NET Core verze starší než 2.1: sourceFileName
nebo destFileName
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat 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 nenamapované jednotce).
sourceFileName
nebo destFileName
je v neplatném formátu.
Příklady
Následující příklad přesune soubor.
using namespace System;
using namespace System::IO;
int 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.
FileStream^ fs = File::Create( path );
if ( fs )
delete (IDisposable^)fs;
}
// 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 );
}
}
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 diskových svazcích a nevyvolá výjimku, pokud jsou zdroj a cíl 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 příkaz . Chcete-li se vyhnout tomuto problému:
V .NET Core 3.0 a novějších verzích můžete volat Move(String, String, Boolean) nastavení parametru
overwrite
natrue
hodnotu , 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 volat
Delete
k odebrání nadbytečného zdrojového souboru. Tato strategie je vhodná, pokud je kopírovaný soubor malý a hledáte "atomic" operaci se souborem. Pokud soubor nejprve spustíteDelete
a systém nebo program dojde k chybovému ukončení, cílový soubor už nebude existovat.Ve všech verzích rozhraní .NET můžete volat Delete(String) před voláním
Move
, čímž odstraníte soubor pouze v případě, že existuje.
Argumenty sourceFileName
a destFileName
můžou obsahovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Informace o získání aktuálního pracovního adresáře najdete 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á, soubor se zkopíruje 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
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ý se má 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 V/V chybě, například při kopírování souboru mezi diskovými svazky.
sourceFileName
nebyl nalezen.
sourceFileName
nebo destFileName
je null
.
.NET Framework a .NET Core verze starší než 2.1: sourceFileName
nebo destFileName
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
Volající nemá požadované oprávnění.
-nebo-
Operačnímu systému 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 nenamapované jednotce).
sourceFileName
nebo destFileName
je v neplatném formátu.
Příklady
Následující příklad přesune soubor.
using namespace System;
using namespace System::IO;
int 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.
FileStream^ fs = File::Create( path );
if ( fs )
delete (IDisposable^)fs;
}
// 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 );
}
}
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 diskových svazcích a nevyvolá výjimku, pokud jsou zdroj a cíl stejné.
Argumenty sourceFileName
a destFileName
můžou obsahovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Informace o získání aktuálního pracovního adresáře najdete 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á, soubor se zkopíruje 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.