天天看點

Unity 檔案夾拷貝(複制)

參考代碼

/// <summary>
    /// 拷貝檔案夾
    /// </summary>
    /// <param name="srcPath">需要被拷貝的檔案夾路徑</param>
    /// <param name="tarPath">拷貝目标路徑</param>
    private void CopyFolder(string srcPath, string tarPath)
    {
        if (!Directory.Exists(srcPath))
        {
            Debug.Log("CopyFolder is finish.");
            return;
        }

        if (!Directory.Exists(tarPath))
        {
            Directory.CreateDirectory(tarPath);
        }

        //獲得源檔案下所有檔案
        List<string> files = new List<string>(Directory.GetFiles(srcPath));
        files.ForEach(f =>
        {
            string destFile = Path.Combine(tarPath, Path.GetFileName(f));
            File.Copy(f, destFile, true); //覆寫模式
        });

        //獲得源檔案下所有目錄檔案
        List<string> folders = new List<string>(Directory.GetDirectories(srcPath));
        folders.ForEach(f =>
        {
            string destDir = Path.Combine(tarPath, Path.GetFileName(f));
            CopyFolder(f, destDir); //遞歸實作子檔案夾拷貝
        });
    }