博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#获取文件大小
阅读量:5981 次
发布时间:2019-06-20

本文共 1090 字,大约阅读时间需要 3 分钟。

当然了都需要引入System.IO这个命名空间

第一个:

public static long GetDirectoryLength(string dirPath)

{
//判断给定的路径是否存在,如果不存在则退出
if (!Directory.Exists(dirPath))
return 0;
long len = 0;

//定义一个DirectoryInfo对象

DirectoryInfo di = new DirectoryInfo(dirPath);

//通过GetFiles方法,获取di目录中的所有文件的大小

foreach (FileInfo fi in di.GetFiles())
{
len += fi.Length;
}

//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归

DirectoryInfo[] dis = di.GetDirectories();
if (dis.Length > 0)
{
for (int i = 0; i < dis.Length; i++)
{
len += GetDirectoryLength(dis[i].FullName);
}
}
return len;
}

第二个

//也是利用递归的思想,只不过是通过File类的Exits方法来判断

//所给路径中所对应的是否为文件

public static long FileSize(string filePath)

{
long temp = 0;

//判断当前路径所指向的是否为文件

if (File.Exists(filePath) == false)
{
string[] str1 = Directory.GetFileSystemEntries(filePath);
foreach (string s1 in str1)
{
temp += FileSize(s1);
}
}
else
{

//定义一个FileInfo对象,使之与filePath所指向的文件向关联,

//以获取其大小

FileInfo fileInfo = new FileInfo(filePath);
return fileInfo.Length;
}
return temp;
}

其实删除文件夹的思想与这个是一样的,设置要简单很多,只要简单的判断一下当前的是文件还是文件夹,如果是文件则删除.是文件夹则递归

转载于:https://www.cnblogs.com/zhangchenliang/archive/2010/06/17/1759448.html

你可能感兴趣的文章
dom与jquery互相转换
查看>>
一个程序员的自白(自负盈亏)
查看>>
前端性能优化分析
查看>>
Linux 文件搜索命令:find、which、whereis 和 locate
查看>>
Jackson 框架,轻易转换JSON
查看>>
air 4.0+,Ane打包注意事项【适用Android】
查看>>
驱动架构的一些开源项目
查看>>
解决jquery中$命名冲突的几种方法
查看>>
KPI绩效考核为何在国内不管用?
查看>>
你所不知的VIM强大功能
查看>>
react+redux状态管理实现排序 合并多个reducer文件
查看>>
Django 配置MySQL数据库 mysql
查看>>
27.读文件时通过两种方式判断文件结尾
查看>>
试水Proxmox最新版本PVE 5.3
查看>>
第7章核心代码《跟老男孩学习Linux运维:Shell编程实战》
查看>>
Codis--分布式redis架构设计
查看>>
2012 2013 2014 Lync MVP 的坚持
查看>>
部署Jboss5拒绝直接使用ip方式访问
查看>>
二级缓存相关属性
查看>>
Ironfan在大数据集群部署、配置管理中的应用
查看>>