您的位置:首页 > 其它

获取文件大小/查找文件

2017-08-25 19:46 281 查看
/// <summary>

    /// 遍历目录下所有文件

    /// </summary>

    /// <param name="fullPath"></param>

    /// <param name="textureFullPathList"></param>

    private static void OnGetAllTexturesUnderPath(string fullPath, List<string> textureFullPathList)

    {

        if (!System.IO.Directory.Exists(fullPath))

        {

            Log("OnGetAllTexturesUnderPath not exits" + fullPath);

            return;

        }

        string[] formats = new string[] { "*.jpg", "*.png" };

        for(int i=0; i<formats.length; i++)

        {

            string[] subFiles = System.IO.Directory.GetFiles(fullPath, formats[i]);

            if(subFiles!=null && subFiles.Length > 0)

            {

                for(int j=0; j<subFiles.Length; ++j)

                {

                    textureFullPathList.Add(subFiles[j]);

                }

            }

        }

        string[] subDirs = System.IO.Directory.GetDirectories(fullPath);

        if(subDirs!=null && subDirs.Length > 0)

        {

            for(int i=0; i<subDirs.Length; ++i)

            {

                OnGetAllTexturesUnderPath(subDirs[i], textureFullPathList);

            }

        }

    }

    /// <summary>

    /// 统计前缀图片的大小

    /// </summary>

    static void ImageSpace()

    {

        long len_UI_C = 0;

        List<string> textureFullPathList = new List<string>();

        OnGetAllTexturesUnderPath(Application.dataPath + "/Art/Texture/UI/", textureFullPathList);

        for(int i=0; i<textureFullPathList.Count; ++i)

        {

            string textureFullPath = textureFullPathList[i];

            FileInfo file = new FileInfo(textureFullPath);         //获取文件

            if (file.Name.StartWith("UI_C_"))

            {

                len_UI_C += file.Length;

            }

            //略

        }

    }

    /// <summary>

    /// 批量加前缀

    /// </summary>

    static void BatchRename()

    {

        string prefixString = "what_";

        string fullPath = Application.dataPath + "/Art/Texture/UI/";

        if (System.IO.Directory.Exists(fullPath)) 

        {

            string[] files = System.IO.Directory.GetFiles(fullPath);

            for(int i=0; i<files.Length; i++)

            {

                string fullName = files[i];

                string fileName = System.IO.Path.GetFileNameWithoutExtension(fullName);

                if(fileName.StartWith("UI_")|| fileName.StartWith("Mod_"))

                {

                    continue;

                }

                string assetName = "Assets" + fullName.Substring(Application.dataPath.Length, fullName.Length - Application.dataPath.Length);

                object obj = AssetDatabase.LoadMainAssetAtPath(assetName);

                if (!(obj is Texture))

                    continue;

                string path = AssetDatabase.GetAssetPath(obj);

                Log("rename:" + path);

                AssetDatabase.RenameAsset(path, prefixString + fileName);

            }

        }

    }

//****************************************************************************************************************************************

//*******************************************************************************************************************************************

1、两数相除保留小数点: System.Math.Round( (a/b),1)   //保留一位小数

2、获取文件大小:

public static long GetDirectoryLength(string dirPath)

{                                                      //判断给定的路径是否存在,如果不存在则退出

     if (!Directory.Exists(dirPath))

             return 0;

      long len = 0;

DirectoryInfo di = new DirectoryInfo(dirPath); //定义一个DirectoryInfo对象

foreach (FileInfo fi in di.GetFiles())  //通过GetFiles方法,获取di目录中的所有文件的大小

{

       len += fi.Length;

}

DirectoryInfo[] dis = di.GetDirectories();  //获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归

if (dis.Length > 0)

{

   for (int i = 0; i < dis.Length; i++)

   {

        len += GetDirectoryLength(dis[i].FullName);

    }

}

    return len;

}
参考:http://www.cnblogs.com/shadowme/p/6250036.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: