最近在开发的时候,接到一个任务:将自动化打包编译之后的项目资源做一个备份,因编译之后的资源包含.mainfest文件和.meat,实际出包使用的资源是不需要这些文件的。所以备份的时候需要筛选掉后缀为.mainfest和.meat 的文件。
说到底就是一个文件的复制、粘贴、筛选的操作。逻辑实现:
public void CopyNewAssetBundleFolder() {
}
///
/// 拷贝资源目录
///
public void CopyDirectory(string sourceDirPath, string saveDirPath) {
if (!Directory.Exists(saveDirPath)){
Directory.CreateDirectory(saveDirPath);
}
//获取源文件目录下的所有文件和子目录
DirectoryInfo dir = new DirectoryInfo(sourceDirPath);
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();
foreach (FileSystemInfo i in fileinfo) {
if (i is DirectoryInfo) { //判断是否是文件夹
CreateFileFolder(Path.Combine(sourceDirPath, i.Name), Path.Combine(saveDirPath, i.Name));
}
else {
string tmpFullName = i.FullName.ToLower();
if (i is FileInfo) {
if (tmpFullName.EndsWith(".DS_Store",StringComparison.OrdinalIgnoreCase)
|| tmpFullName.EndsWith(".manifest") || tmpFullName.EndsWith(".meta")) {
continue;if (tmpFullName.EndsWith(".DS_Store", StringComparison.OrdinalIgnoreCase)
|| tmpFullName.EndsWith(".manifest") || tmpFullName.EndsWith(".meta")) {
continue; public void DelectDir(string srcPath) {
try {
DirectoryInfo dir = new DirectoryInfo(srcPath);
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();
foreach (FileSystemInfo i in fileinfo) {
if (i is DirectoryInfo) {
DirectoryInfo subdir = new DirectoryInfo(i.FullName);
subdir.Delete(true);
}
else {
File.Delete(i.FullName);
}
}
}
catch { }
}