using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Android; public class TranslateFiles : MonoBehaviour { [SerializeField] private UnityEngine.UI.Button _btn1; [SerializeField] private UnityEngine.UI.Button _btn2; [SerializeField] private UnityEngine.UI.Text _text; [SerializeField] private string _pkgName = "com.cxgame.zscwmw"; [SerializeField] private string _userPath = "/storage/emulated/0/Pictures/"; // Start is called before the first frame update void Start() { _btn1.onClick.RemoveAllListeners(); _btn2.onClick.RemoveAllListeners(); _btn1.onClick.AddListener(() => { try { string srcPath = Path.Combine("/data/data/", _pkgName); string destPath = Path.Combine(_userPath, _pkgName); CopyFolder(srcPath, destPath); _text.text += "移动到用户文件夹成功"+ "\n"; } catch (Exception e) { _text.text += e.ToString() + "\n"; } }); _btn2.onClick.AddListener(() => { try { string srcPath = Path.Combine(_userPath, _pkgName); string destPath = Path.Combine("/data/data/", _pkgName); CopyFolder(srcPath, destPath); _text.text += "移动到根目录成功"+ "\n"; } catch (Exception e) { _text.text += e.ToString() + "\n"; } }); } /// /// 移动文件夹中的所有文件夹与文件到另一个文件夹 //转载请注明来自 http://www.uzhanbao.com /// /// 源文件夹 /// 目标文件夹 public static void CopyFolder(string sourcePath, string destPath) { if (Directory.Exists(sourcePath)) { if (!Directory.Exists(destPath)) { //目标目录不存在则创建 try { Directory.CreateDirectory(destPath); } catch (Exception ex) { throw new Exception("创建目标目录失败:" + ex.Message); } } else { foreach (var fileInfo in new DirectoryInfo(destPath).GetFiles()) { fileInfo.Delete(); } } //获得源文件下所有文件 List files = new List(Directory.GetFiles(sourcePath)); files.ForEach(c => { string destFile = Path.Combine(new string[] {destPath, Path.GetFileName(c)}); //覆盖模式 if (File.Exists(destFile)) { File.Delete(destFile); } File.Copy(c, destFile); }); //获得源文件下所有目录文件 List folders = new List(Directory.GetDirectories(sourcePath)); folders.ForEach(c => { string destDir = Path.Combine(new string[] {destPath, Path.GetFileName(c)}); //Directory.Move必须要在同一个根目录下移动才有效,不能在不同卷中移动。 //Directory.Move(c, destDir); //采用递归的方法实现 CopyFolder(c, destDir); }); } else { throw new DirectoryNotFoundException("源目录不存在!"); } } private void JsonTest() { } }