0评论

Unity不同路径下的文件拷贝

文章来自CSDN博客 2018-08-09 7浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏开发行业精英群711501594

下面给大家介绍下针对不同路径下的文件拷贝方法。

代码如下:
void OnGUI()
{
	DrawButtons();
}
void DrawButtons()
{
	if (flag == 1) {
		flag = 2;
		Debug.Log ("streamingAssetsPath = " + Application.streamingAssetsPath);
		Debug.Log ("persistentDataPath = " + Application.persistentDataPath);
		Debug.Log ("dataPath = " + Application.dataPath);
		Debug.Log ("temporaryCachePath = " + Application.temporaryCachePath);
	}
	GUI.Label(new Rect(30,5,600,50), "streamingAssetsPath = " + Application.streamingAssetsPath.ToString() );
	GUI.Label(new Rect(30,20,600,50), "persistentDataPath = " + Application.persistentDataPath.ToString() );
	GUI.Label(new Rect(30,35,600,50), "dataPath = " + Application.dataPath.ToString() );
	GUI.Label(new Rect(30,50,600,50), "temporaryCachePath = " + Application.temporaryCachePath.ToString() );
	if (GUI.Button (new Rect (400, 100, 150, 50), "拷贝到streaming"))
	{
		CopyFolder (Application.persistentDataPath,Application.streamingAssetsPath);
	}
	if (GUI.Button (new Rect (400, 160, 150, 50), "拷贝到persistent"))
	{
		CopyFolder (Application.streamingAssetsPath,Application.persistentDataPath);
	}
	if (GUI.Button (new Rect (400, 210, 150, 50), "删除streaming"))
	{
	}
	if (GUI.Button (new Rect (400, 270, 150, 50), "删除persistent"))
	{
	}
}
void CopyFolder( string srcPath, string tarPath )
{
	if(!Directory.Exists(srcPath))
	{
		Directory.CreateDirectory (srcPath);
	}
	if(!Directory.Exists(tarPath))
	{
		Directory.CreateDirectory (tarPath);
	}
	CopyFile (srcPath, tarPath);
	string[] directionName = Directory.GetDirectories (srcPath);
	foreach (string dirPath in directionName) 
	{
		string directionPathTemp = tarPath + "\\" + dirPath.Substring (srcPath.Length + 1);
		CopyFolder (dirPath, directionPathTemp);
	}
}
void CopyFile( string srcPath, string tarPath )
{
	string[] filesList = Directory.GetFiles (srcPath);
	foreach (string f in filesList) 
	{
		string fTarPath = tarPath + "\\" + f.Substring (srcPath.Length + 1);
		if (File.Exists (fTarPath)) {
			File.Copy (f, fTarPath, true);
		} else {
			File.Copy (f, fTarPath);
		}
	}
}