|
板凳
发表于 2019-6-14 14:49:14
|
只看该作者
江苏省南京市
1、遍历某磁盘下所有文件夹及文件输出在控制台上?
注:可能会与到异常 , 分析异常,想办法解决
思路: 循环里面递归遍历。。try捕捉异常,catch里面continue
file和Directory长度大于0的时候输出控制台,最后再输出文件总数
private void Form1_Load(object sender, EventArgs e){
int i = listDisk(@"G:");
Console.WriteLine(i);
}
public int listDisk(string path){
int i = 0;
string[] strFile = Directory.GetFiles(path);
i = strFile.Length;
string[] strDirectory = Directory.GetDirectories(path);
if (strFile.Length > 0){
Console.WriteLine(string.Join(",", strFile));
}
if (strDirectory.Length > 0){
Console.WriteLine(string.Join(",", strDirectory));
}
foreach (string item in strDirectory){
try{
i += listDisk(item);
}
catch (Exception){
continue;
}
}
return i;
}
}
2、托管资源 与 非托管资源在资源回收时要注意什么?
托管资源:会被GC自动回收,垃圾回收执行后未被回收的垃圾会自动升级,
非托管资源:需要手动回收,不回收会出现不可预知的错误
3、所有的资源都可以使用using关键字对不对 , 为什么?
不对,实现了IDisposeable接口的资源才能使用using关键字。
4、using 的实现原理是什么?
try{}finally{}语句块在finally中调用Dispose,只是不用自己写 |
评分
-
查看全部评分
|