using System;
using System.Collections.Generic;
using System.IO;
namespace GFGEditor
{
    public class FileHelper
    {
        /// 
        /// 
        /// 
        /// 
        /// ,路径比须从Asset起,例如"Assets/Res/Effect"
        /// 
        public static void ForeachFileInDir(string dirPath, List excludeDirs, Action action)
        {
            List excludeDirPaths = new List();
            if (excludeDirs != null)
            {
                foreach (var excDir in excludeDirs)
                {
                    var t = Environment.CurrentDirectory + "/" + excDir;
                    t = t.Replace('\\', '/');
                    excludeDirPaths.Add(t);
                }
            }
            var t1 = dirPath.Replace('\\', '/');
            if (Directory.Exists(dirPath) && !excludeDirPaths.Contains(t1))
            {
                var files = Directory.GetFiles(dirPath);
                var dirs = Directory.GetDirectories(dirPath);
                foreach (var file in files)
                {
                    action?.Invoke(file);
                }
                foreach (var dir in dirs)
                {
                    ForeachFileInDir(dir, excludeDirs, action);
                }
            }
        }
    }
}