首頁 > 軟體

C#實現拷貝檔案到另一個資料夾下

2023-10-11 14:00:10

C#拷貝檔案到另一個資料夾下

/// <summary>
/// 拷貝檔案到另一個資料夾下
/// </summary>
/// <param name="sourceName">原始檔路徑</param>
/// <param name="folderPath">目標路徑(目標資料夾)</param>
public void CopyToFile(string sourceName, string folderPath)
{
    //例子:
    //原始檔路徑
    //string sourceName = @"D:SourceTest.txt";
    //目標路徑:專案下的NewTest資料夾,(如果沒有就建立該資料夾)
    //string folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NewTest");
 
    if (!Directory.Exists(folderPath))
    {
        Directory.CreateDirectory(folderPath);
    }
 
    //當前檔案如果不用新的檔名,那麼就用原檔案檔名
    string fileName = Path.GetFileName(sourceName);
    //這裡可以給檔案換個新名字,如下:
    //string fileName = string.Format("{0}.{1}", "newFileText", "txt");
 
    //目標整體路徑
    string targetPath = Path.Combine(folderPath, fileName);
 
    //Copy到新檔案下
    FileInfo file = new FileInfo(sourceName);
    if (file.Exists)
    {
        //true 為覆蓋已存在的同名檔案,false 為不覆蓋
        file.CopyTo(targetPath, true);
    }
}

注意方法內註釋的用法,可以根據自己的需要更改。

C#檔案搬運(從一個資料夾Copy至另一個資料夾)

時常我們會遇到檔案的複製、上傳等問題。特別是自動化生產方面,需要對機臺丟擲的檔案進行搬運、收集,然後對資料裡的資料等進行分析,等等。

Winform下,列舉集中較常見的檔案的搬運。

private void MoveFile()
        {
            string Frompath = @"D:TestOutPut";
            string directoryPath = @"D:report";
            try
            {
                string[] picList = Directory.GetFiles(Frompath, "*.jpg"); //圖片
                string[] txtList = Directory.GetFiles(Frompath, "*.txt"); //文字檔案
                string[] pdfList = Directory.GetFiles(Frompath, "*.pdf");  //PDF檔案

                foreach (string f in picList)
                {
                    //取得檔名.
                    string fName = f.Substring(Frompath.Length + 1);
                    File.Copy(Path.Combine(Frompath, fName), Path.Combine(directoryPath, fName), true);
                }
                foreach (string f in txtList)
                {
                    string fName = f.Substring(Frompath.Length + 1);
                    try
                    {
                        File.Copy(Path.Combine(Frompath, fName), Path.Combine(directoryPath, fName));
                    }
                    // 捕捉異常.
                    catch (IOException copyError)
                    {
                        MessageBox.Show(copyError.Message);
                    }
                }
                foreach (string f in pdfList)
                {
                    string fName = f.Substring(Frompath.Length + 1);
                    try
                    {
                        File.Copy(System.IO.Path.Combine(Frompath, fName), System.IO.Path.Combine(directoryPath, fName));
                    }
                    catch (IOException copyError)
                    {
                        MessageBox.Show(copyError.Message);
                        return;
                    }
                }
                //刪除原始資料夾裡的檔案
                foreach (string f in txtList)
                {
                    File.Delete(f);
                }
                foreach (string f in picList)
                {
                    File.Delete(f);
                }
                foreach (string f in pdfList)
                {
                    File.Delete(f);
                }

            }
            catch (DirectoryNotFoundException dirNotFound)
            {
                MessageBox.Show(dirNotFound.Message);
            }
        }

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com