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-

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 overwritetrueolarak 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ız Delete ve sistem veya program kilitlenirse, hedef dosya artık mevcut olmaz.

  • Tüm .NET sürümlerinde, çağrısı Moveyapmadan ö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.

Ayrıca bkz.

Şunlara uygulanır