Bagikan melalui


File.Move Metode

Definisi

Overload

Move(String, String)

Memindahkan file tertentu ke lokasi baru, menyediakan opsi untuk menentukan nama file baru.

Move(String, String, Boolean)

Memindahkan file tertentu ke lokasi baru, menyediakan opsi untuk menentukan nama file baru dan mengganti file tujuan jika sudah ada.

Move(String, String)

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Memindahkan file tertentu ke lokasi baru, menyediakan opsi untuk menentukan nama file baru.

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)

Parameter

sourceFileName
String

Nama file yang akan dipindahkan. Dapat mencakup jalur relatif atau absolut.

destFileName
String

Jalur dan nama baru untuk file.

Pengecualian

destFileName sudah ada.

-atau-

Terjadi kesalahan I/O, misalnya saat menyalin file di seluruh volume disk.

sourceFileName tidak ditemukan.

sourceFileName atau destFileName adalah null.

.NET Framework dan .NET Core yang lebih lama dari 2.1: sourceFileName atau destFileName merupakan string dengan panjang nol, hanya berisi spasi kosong, atau berisi karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()

Pemanggil tidak memiliki izin yang diperlukan.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan di sourceFileName atau destFileName tidak valid, (misalnya, ada di drive yang tidak dipetakan).

sourceFileName atau destFileName dalam format yang tidak valid.

Contoh

Contoh berikut memindahkan file.

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

Keterangan

Metode ini berfungsi di seluruh volume disk, dan tidak memberikan pengecualian jika sumber dan tujuannya sama.

Perhatikan bahwa jika Anda mencoba mengganti file dengan memindahkan file dengan nama yang sama ke direktori tersebut, IOException akan dilemparkan. Untuk menghindari masalah ini:

  • Di .NET Core 3.0 dan versi yang lebih baru, Anda dapat memanggil Move(String, String, Boolean) pengaturan parameter overwrite ke true, yang akan menggantikan file jika ada.

  • Di semua versi .NET, Anda dapat memanggil Copy(String, String, Boolean) untuk menyalin dengan menimpa, lalu memanggil Delete untuk menghapus file sumber berlebih. Strategi ini disarankan jika file yang disalin kecil, dan Anda mencari operasi file "atom". Jika Anda Delete file terlebih dahulu, dan sistem atau program mengalami crash, file tujuan tidak akan ada lagi.

  • Di semua versi .NET, Anda dapat memanggil Delete(String) sebelum memanggil Move, yang hanya akan menghapus file jika ada.

Argumen sourceFileName dan destFileName dapat mencakup informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini. Untuk mendapatkan direktori kerja saat ini, lihat GetCurrentDirectory.

Memindahkan file di seluruh volume disk setara dengan menyalin file dan menghapusnya dari sumber jika penyalinan berhasil.

Jika Anda mencoba memindahkan file di seluruh volume disk dan file tersebut sedang digunakan, file disalin ke tujuan, tetapi tidak dihapus dari sumbernya.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Lihat juga

Berlaku untuk

Move(String, String, Boolean)

Sumber:
File.cs
Sumber:
File.cs
Sumber:
File.cs

Memindahkan file tertentu ke lokasi baru, menyediakan opsi untuk menentukan nama file baru dan mengganti file tujuan jika sudah ada.

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)

Parameter

sourceFileName
String

Nama file yang akan dipindahkan. Dapat mencakup jalur relatif atau absolut.

destFileName
String

Jalur dan nama baru untuk file.

overwrite
Boolean

true untuk mengganti file tujuan jika sudah ada; false Sebaliknya.

Pengecualian

destFileName sudah ada dan overwrite adalah false.

-atau-

Terjadi kesalahan I/O, misalnya saat menyalin file di seluruh volume disk.

sourceFileName tidak ditemukan.

sourceFileName atau destFileName adalah null.

.NET Framework dan .NET Core yang lebih lama dari 2.1: sourceFileName atau destFileName merupakan string dengan panjang nol, hanya berisi spasi kosong, atau berisi karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()

Pemanggil tidak memiliki izin yang diperlukan.

-atau-

Sistem Operasi gagal memperoleh akses eksklusif ke file tujuan.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan di sourceFileName atau destFileName tidak valid, (misalnya, ada di drive yang tidak dipetakan).

sourceFileName atau destFileName dalam format yang tidak valid.

Contoh

Contoh berikut memindahkan file.

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

Keterangan

Metode ini berfungsi di seluruh volume disk, dan tidak memberikan pengecualian jika sumber dan tujuannya sama.

Argumen sourceFileName dan destFileName dapat mencakup informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini. Untuk mendapatkan direktori kerja saat ini, lihat GetCurrentDirectory.

Memindahkan file di seluruh volume disk setara dengan menyalin file dan menghapusnya dari sumber jika penyalinan berhasil.

Jika Anda mencoba memindahkan file di seluruh volume disk dan file tersebut sedang digunakan, file disalin ke tujuan, tetapi tidak dihapus dari sumbernya.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Lihat juga

Berlaku untuk