获取文件大小/查找文件
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
/// 遍历目录下所有文件
/// </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
相关文章推荐
- c获取文件的大小和文件属性、文件查找
- MFC查找所有后缀文件获取文件大小读取特定位置数据
- c获取文件的大小和文件属性、文件查找
- VC获取文件大小!
- 建议linux下使用stat()获取文件大小
- C语言获取文件大小
- 获取文件夹大小以及删除指定目录下文件及目录
- VC获取文件大小
- Java获取视频时长、宽高、文件大小、格式、并截图做封面
- (转)C/C++多种方法获取文件大小
- 前台获取并限制上传文件大小、上传文件格式
- Powershell 之批量获取文件大小的实现代码
- java获取文件大小
- linux下C++读取文件,获取文件大小。
- [Object-c]获取文件的大小 清除缓存
- 获取联系人【自定义布局文件与主布局文件相连,数据库内容查找并显示】
- iOS获取文件和文件夹大小
- python获取文件及文件夹大小
- 在Android 获取文件的大小以及文件名称
- 巧用Log函数获取image文件大小