首页 新闻 会员 周边

FileInfo和DirectoryInfo 类的使用

0
悬赏园豆:20 [已关闭问题] 关闭于 2013-03-25 22:53

请问各位朋友:

FileInfo和DirectoryInfo 类为什么有些方法只能在控制台应用程序才有效,而在像ASP.NET的应用程序就无效呢?这个跟版本有关吗?还是跟程序类型有关?

Elaine00的主页 Elaine00 | 菜鸟二级 | 园豆:294
提问于:2013-03-20 18:41
< >
分享
所有回答(4)
0

比如说?

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-20 18:48

其实就是在控制台使用点号可以出现的方法,在ASP。net就出不来了,是不是因为程序集不同~还是其他的原因呢?朋友~

支持(0) 反对(0) Elaine00 | 园豆:294 (菜鸟二级) | 2013-03-22 20:24
0
老师在讲C#文件操作的时候讲的个类,功能类似,但用法有区别。他们都存在于systerm.IO命名空间下。
File和Directory的方法都是静态方法。FileInfo和DirectoryInfo的方法都是普通方法。老师建议是如果你要在某个文件上多次进行IO操作,最好使用2个Info类,如果只是操作1、2次操作,最好使用静态方法的类。
我自认为是如下原因,并经考证
静态方法每次对文件进行操作过程是:静态方法存在于栈头,它是由类调用,然后寻找需要操作的文件。寻找需要操作文件的过程是个IO过程,耗时比较长。但它不必要到堆区去遍历实例化新对象。
普通方法是由当时的对象调用,需要创建对象,new一个,(静态方法不需要此过程)但如果操作次数多的话,普通方法就不需要再次去执行不必要而且耗时的IO操作,就能整体提速!

所以执行方法的次数也就能决定了使用哪个类的最佳选择。

当然,我可能忽略了一点,那就是File FileInfo     是对文件进行操作,而Directory DirectoryInfo 是对文件夹进行操作。。。。。

望天思雨 | 园豆:111 (初学一级) | 2013-03-20 22:15
0

File和Directory都是静态方法调用

FileInfo和DirectoryInfo是对实例方法调用.

这些操作继承IO类,windows应用程序下都是可以操作的,在wp7或win8都可以对文件操作,之所以无效是你代码的原因吧

伏草惟存 | 园豆:1420 (小虾三级) | 2013-03-20 23:44
0

类库都是一样的,区别是宿主不一样,访问权限也不一样,访问的默认目录也有区别。

asp.net跑的时候是用的iis的用户比如NetworkService或者iis_USRS;

不要相对路径,在asp.net中不是网站目录作为根目录的;

today4king | 园豆:3499 (老鸟四级) | 2013-03-21 12:25

其实就是在控制台使用点号可以出现的方法,在ASP。net就出不来了,是不是因为程序集不同~还是其他的原因呢?朋友~

支持(0) 反对(0) Elaine00 | 园豆:294 (菜鸟二级) | 2013-03-22 20:23

@王瓒: 什么方法没有出来?

支持(0) 反对(0) today4king | 园豆:3499 (老鸟四级) | 2013-04-01 18:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册