Aracılığıyla paylaş


File.Move Yöntem

Tanım

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 destFileNamenull.

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 parametresini trueolarak 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.

Ş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 overwritefalse.

-veya-

Örneğin, dosyayı disk birimleri arasında kopyalarken bir G/Ç hatası oluştu.

sourceFileName bulunamadı.

sourceFileName veya destFileNamenull.

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.

Şunlara uygulanır