C# 文件夹拷贝,看网上相同功能很多,但是使用起来 没有达到预期:
public static void CopyDirectory(string srcDir, string tgtDir)
{
DirectoryInfo source = new DirectoryInfo(srcDir);
DirectoryInfo target = new DirectoryInfo(tgtDir);
//if (target.FullName.StartsWith(source.FullName, StringComparison.CurrentCultureIgnoreCase))
//{
// Debug.LogError("父目录不能拷贝到子目录!");
//}
if (!source.Exists)
{
return;
}
if (!target.Exists)
{
target.Create();
}
FileInfo[] files = source.GetFiles();
for (int i = 0; i < files.Length; i++)
{
File.Copy(files[i].FullName, target.FullName + @"/" + files[i].Name, true);
}
DirectoryInfo[] dirs = source.GetDirectories();
for (int j = 0; j < dirs.Length; j++)
{
CopyDirectory(dirs[j].FullName, target.FullName + @"/" + dirs[j].Name);
}
}
文件夹的删除:
public static void DeleteDirectory(DirectoryInfo dir)
{
if (!dir.Exists)
{
return;
}
try
{
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
file.Delete();
}
// Add subdirectory sizes.
DirectoryInfo[] directories = dir.GetDirectories();
foreach (DirectoryInfo directory in directories)
{
DeleteDirectory(directory);
}
dir.Delete();
}
catch (Exception ex)
{
Debug.LogError("Exception ex.Message = " + ex.Message + ". Please make sure the folder is not used by any other program.");
}
}