File.Move Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
Move(String, String) |
Belirtilen dosyayı yeni bir konuma taşır ve yeni bir dosya adı belirtme seçeneği sağlar. |
Move(String, String, Boolean) |
Belirtilen dosyayı yeni bir konuma taşır ve yeni bir dosya adı belirtme ve zaten varsa hedef dosyayı değiştirme seçeneklerini sağlar. |
Move(String, String)
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
Belirtilen dosyayı yeni bir konuma taşır ve yeni bir dosya adı belirtme seçeneği sağlar.
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)
Parametreler
- sourceFileName
- String
Taşınacak dosyanın adı. Göreli veya mutlak bir yol içerebilir.
- destFileName
- String
Dosyanın yeni yolu ve adı.
Özel durumlar
destFileName
zaten var.
-veya-
Dosyayı disk birimleri arasında kopyalarken G/Ç hatası oluştu.
sourceFileName
bulunamadı.
sourceFileName
veya destFileName
şeklindedir null
.
.NET Framework ve .NET Core sürümleri 2.1'den eskidir: sourceFileName
veya destFileName
sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.
Çağıranın gerekli izni yok.
Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.
veya destFileName
içinde sourceFileName
belirtilen yol geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
sourceFileName
veya destFileName
geçersiz biçimdedir.
Örnekler
Aşağıdaki örnek bir dosyayı taşır.
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
Açıklamalar
Bu yöntem disk birimlerinde çalışır ve kaynak ve hedef aynıysa özel durum oluşturmaz.
Aynı ada sahip bir dosyayı bu dizine taşıyarak bir dosyayı değiştirmeyi denerseniz, bir IOException oluşturulur. Bu sorunu önlemek için:
.NET Core 3.0 ve sonraki sürümlerde parametresini
overwrite
true
olarak ayarlamayı çağırabilirsinizMove(String, String, Boolean). Bu, varsa dosyanın yerini alır.Tüm .NET sürümlerinde üzerine yazarak kopyalamak için öğesini çağırabilir Copy(String, String, Boolean) ve ardından fazla kaynak dosyayı kaldırmak için çağırabilirsiniz
Delete
. Kopyalanan dosya küçükse ve "atomik" bir dosya işlemi arıyorsanız bu strateji önerilir. Önce dosyayı kullanırsanızDelete
ve sistem veya program kilitlenirse, hedef dosya artık mevcut olmaz.Tüm .NET sürümlerinde, çağrısı
Move
yapmadan önce öğesini çağırabilirsinizDelete(String). Bu, dosyayı yalnızca varsa siler.
sourceFileName
ve destFileName
bağımsız değişkenleri göreli veya mutlak yol bilgilerini içerebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .
Dosyayı disk birimleri arasında taşımak, kopyalama başarılı olursa dosyayı kopyalayıp kaynaktan silmekle eşdeğerdir.
Bir dosyayı disk birimleri arasında taşımaya çalışırsanız ve bu dosya kullanımdaysa, dosya hedefe kopyalanır, ancak kaynaktan silinmez.
Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.
Ayrıca bkz.
Şunlara uygulanır
Move(String, String, Boolean)
- Kaynak:
- File.cs
- Kaynak:
- File.cs
- Kaynak:
- File.cs
Belirtilen dosyayı yeni bir konuma taşır ve yeni bir dosya adı belirtme ve zaten varsa hedef dosyayı değiştirme seçeneklerini sağlar.
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)
Parametreler
- sourceFileName
- String
Taşınacak dosyanın adı. Göreli veya mutlak bir yol içerebilir.
- destFileName
- String
Dosyanın yeni yolu ve adı.
- overwrite
- Boolean
true
hedef dosyayı zaten varsa değiştirmek için; false
Aksi takdir -de.
Özel durumlar
destFileName
zaten var ve overwrite
şeklindedir false
.
-veya-
Dosyayı disk birimleri arasında kopyalarken G/Ç hatası oluştu.
sourceFileName
bulunamadı.
sourceFileName
veya destFileName
şeklindedir null
.
.NET Framework ve .NET Core sürümleri 2.1'den eskidir: sourceFileName
veya destFileName
sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.
Çağıranın gerekli izni yok.
-veya-
İşletim Sistemi hedef dosyaya özel erişim alamadı.
Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.
veya destFileName
içinde sourceFileName
belirtilen yol geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
sourceFileName
veya destFileName
geçersiz biçimdedir.
Örnekler
Aşağıdaki örnek bir dosyayı taşır.
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
Açıklamalar
Bu yöntem disk birimlerinde çalışır ve kaynak ve hedef aynıysa özel durum oluşturmaz.
sourceFileName
ve destFileName
bağımsız değişkenleri göreli veya mutlak yol bilgilerini içerebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .
Dosyayı disk birimleri arasında taşımak, kopyalama başarılı olursa dosyayı kopyalayıp kaynaktan silmekle eşdeğerdir.
Bir dosyayı disk birimleri arasında taşımaya çalışırsanız ve bu dosya kullanımdaysa, dosya hedefe kopyalanır, ancak kaynaktan silinmez.
Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.