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-
Örneğin, dosyayı disk birimleri arasında kopyalarken bir G/Ç hatası oluştu.
sourceFileName
bulunamadı.
sourceFileName
veya destFileName
null
.
2.1'den eski .NET Framework ve .NET Core sürümleri: sourceFileName
veya destFileName
sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir.
GetInvalidPathChars() yöntemini kullanarak geçersiz karakterleri sorgulayabilirsiniz.
Çağıranın gerekli izni yok.
Belirtilen yol, dosya adı veya her ikisi de sistem tanımlı uzunluk üst sınırını aşıyor.
sourceFileName
veya destFileName
belirtilen yol geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
sourceFileName
veya destFileName
geçersiz biçimde.
Ö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 atıldığını unutmayın. Bu sorunu önlemek için:
.NET Core 3.0 ve sonraki sürümlerinde,
overwrite
parametresinitrue
olarak ayarlayarak Move(String, String, Boolean) çağırabilirsiniz. Bu, varsa dosyanın yerini alır.Tüm .NET sürümlerinde, üzerine yazarak kopyalamak için Copy(String, String, Boolean) çağırabilir, sonra fazla kaynak dosyayı kaldırmak için
Delete
çağırabilirsiniz. Kopyalanan dosya küçükse ve "atomik" bir dosya işlemi arıyorsanız bu strateji önerilir. Önce dosyayıDelete
ve sistem veya program kilitlenirse hedef dosya artık mevcut olmaz.Tüm .NET sürümlerinde,
Move
çağırmadan önce Delete(String) çağırabilirsiniz. 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 bilgileri 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 silmeye 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.
- Dosya ve Akış G/Ç
- Dosyadan Metin Okuma
- Nasıl yapılır: Dosya Metin Yazma
Ş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
Hedef dosyayı zaten varsa değiştirmek için true
; false
.
Özel durumlar
destFileName
zaten var ve overwrite
false
.
-veya-
Örneğin, dosyayı disk birimleri arasında kopyalarken bir G/Ç hatası oluştu.
sourceFileName
bulunamadı.
sourceFileName
veya destFileName
null
.
2.1'den eski .NET Framework ve .NET Core sürümleri: sourceFileName
veya destFileName
sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir.
GetInvalidPathChars() yöntemini kullanarak 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 de sistem tanımlı uzunluk üst sınırını aşıyor.
sourceFileName
veya destFileName
belirtilen yol geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).
sourceFileName
veya destFileName
geçersiz biçimde.
Ö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 bilgileri 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 silmeye 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.
- Dosya ve Akış G/Ç
- Dosyadan Metin Okuma
- Nasıl yapılır: Dosya Metin Yazma