Sao chép và chép đè nếu tập tin đã tồn tại bằng phương thức File.Copy trong CSharp? (How to copy a file and overwrite if it's exists with File.Copy method in CShap?)


Bài viết này tôi sẽ hướng dẫn phương pháp sử dụng phương thức File.Copy để sao chép một tâp tin và nếu tập tin đã tồn tại trong đường dẫn(folder) được chỉ định thì nó chép đề lên tập tin đó.




File.Copy()

Là một trong nhưng phương thức cơ bản của lớp File được sử dụng để sao chép(copy) một tập tin đến một vị trí được chỉ định.

Lưu ý nếu tập tin được copy đã tồn tại trong vị trí(folder) được chỉ định thì lệnh copy sẽ không được thực thị vì nó không cho phép chép đề lên tập tin đã tồn tại.

Nhưng nếu thiết lập thê thông số Overwirte là TRUE thì phương thức sẽ thực thi việc chép đè lên tâp tin đã tồn tại đó.

Cú pháp - Syntax

public static void Copy (
    string sourceFileName,
    string destFileName,
    bool overwrite
)

  • sourceFileName: File gốc cần copy.
  • desFileName: Vị trí và tên tập tin được chỉ định sao chép.
  • overwrite: True cho phép chép đè nếu tập tin đã tồn tại, False thì ngược lại.


Ví dụ - Example

Trong ví dụ này bạn cần chuẩn một vài file như sau:
  • Một tâp tin nguồn "D:\Z-Test\A\vnlives_file_01.txt" với nội dụng "AAAAAAAAA".
  • Một tâp tin sẽ bị chép đè "D:\Z-Test\B\vnlives_file_01_new.txt" với nội dụng "BBBBBBBBBBBB".

Sau khi chạy ứng dụng thành công thì nội dụng tập tin bị chép đè sẽ bị đổi lại thành "AAAAAAAAA".

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//@author: Bui Ngoc Son
//@web: vnlives.net

namespace CopyFile
{
    class Program
    {
        static void Main(string[] args)
        {

            string file_name_old = "D:/Z-Test/A/vnlives_file_01.txt";
            string file_name_new = "D:/Z-Test/B/vnlives_file_01_new.txt";
            System.IO.File.Copy(file_name_old, file_name_new, true);

            System.Console.WriteLine("File copy overwrite is succed.");
            System.Console.ReadLine();

        }
    }
}


Kết quả - Result





















No comments:

Post a Comment