118 lines
3.7 KiB
C#
118 lines
3.7 KiB
C#
|
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";
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 移动文件夹中的所有文件夹与文件到另一个文件夹 //转载请注明来自 http://www.uzhanbao.com
|
|||
|
/// </summary>
|
|||
|
/// <param name="sourcePath">源文件夹</param>
|
|||
|
/// <param name="destPath">目标文件夹</param>
|
|||
|
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<string> files = new List<string>(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<string> folders = new List<string>(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()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|