C#中当程序的访问权限不足时,Directory.Exists和File.Exists方法不会抛出异常报错

有些时候,我们开发的C#应用程序的执行账号,可能没有对一些文件夹和文件的访问权限,当我们使用Directory.Exists和File.Exists方法去判断这些文件夹和文件是否存在的时候,Directory.Exists和File.Exists方法并不会抛出异常报错,这两个方法会返回false,表示查找的文件夹和文件不存在。尽管文件夹和文件实际上是存在的,只是C#程序的执行账号没有权限访问而已,但是Directory.Exists和File.Exists方法还是会返回false,并不会抛出异常报错。

以下是MSDN对Directory.Exists和File.Exists方法的解释,其中也提到了权限不足的问题:

Directory.Exists

Returns
true if path refers to an existing directory; false if the directory does not exist or an error occurs when trying to determine if the specified directory exists.

File.Exists

Returns
true if the caller has the required permissions and path contains the name of an existing file; otherwise, false. This method also returns false if path is null, an invalid path, or a zero-length string. If the caller does not have sufficient permissions to read the specified file, no exception is thrown and the method returns false regardless of the existence of path.

参考链接

Directory.Exists
File.Exists

原文地址:https://www.cnblogs.com/OpenCoder/p/10482974.html

时间: 2024-10-15 22:55:52

C#中当程序的访问权限不足时,Directory.Exists和File.Exists方法不会抛出异常报错的相关文章

Android中的安全与访问权限控制

Android是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行.系统和应用之间的安全性是通过Linux的facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配user ID和Group ID.更细化的安全特性是通过"Permission"机制对特定的进程的特定的操作进行限制,而"per-URI permissions"可以对获取特定数据的access专门权限进行限制. 安全架构 Android安全架构中一个中心思

Java中的包与访问权限的控制

多人开发 在java中,可以将一个大型项目中的类分别独立出来,分门别类的存到文件里,再将这些文件一起编译运行,如此的程序代码将更易于维护. 多人开发的问题:如果多个开发人员共同开发一个项目的时候,则肯定会出现类名称相同的情况.那么这样一来就会非常麻烦. 相同的文件会出现覆盖的情况. 包的概念 package是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入package关键字即可. 包的定义格式: package 包名称.子包名称: package org.lxh.dem

关于如何在你的Web项目中实现对空间数据访问权限的控制(一)

Wednesday, 23 JUNE 近来一直在研究关于如何在我的WebGIS项目中实现对空间数据(已发布在GeoServer上)进行权限管理的问题.虽然到目前为止没能找到一个完美的解决方案,但通过这些天的学习与查阅资料,思路上多少有了一些进展,因此记录下来,做一个简单的小结. 1-GeoServer中的Security模块 GeoServer是一个基于J2EE基础实现的,允许用户共享和编辑地理空间数据的GIS应用服务器.——FROM GeoServer官方介绍. 其实,GeoServer的本质

Android中应用程序获得系统权限

Android中如何修改系统时间(应用程序获得系统权限) 在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真 机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用. 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久

在Eclipse中启动tomcat后访问tomcat首页时出现404

在Eclipse中配置好tomcat后,把一个web项目发布到tomcat上去,当使用http://localhost:8080访问tomcat首页时出现404错误,但可以正常访问web页面,然而当在tomcat文件中单独启动tomcat时却可以正常访问tomcat首页,如图所示: 对于这个问题,是Eclipse中默认设置出了问题,解决方案如下: 1.找到server操作窗口,双击下面的tomcat服务,出现如图所示界面: 2.在打开的设置中,将Server Locations的选项选成第二个"

解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出现.说这是 Java Swing 的 bug 还是 GTK+/GNOME 3 的主题(如 Adwaita)的 bug 其实意义不是太大.这里给出一个简单的解决办法,其思路是修改 GTK+/GNOME 3 的主题,这里以系统默认的 Adwaita 主题为例: Adwaita 主题文件位于 /usr/s

elipse中开发servlet,直接run as 时出现404错误的解决方法

在elipse中开发servlet时,无论在IDE中运行,还是在浏览器中访问servlet时,一直报404错误, 后发现在build目录中没有生成相应的类文件,后反复采用project中的clean.buildproject ,在此目录产生了类,在IDE环境中就可以直接运行. 或在项目属性中指定class目录 然后在编译项目,产生相应的类.

spark sql 访问hive数据时找不mysql的解决方法

我尝试着在classpath中加n入mysql的驱动仍不行 解决方法:在启动的时候加入参数--driver-class中加入mysql 驱动 [[email protected] spark-1.0.1-bin-hadoop2]$ bin/spark-shell --driver-class-path lib/mysql-connector-java-5.1.30-bin.jar 总结:1.spark的版本必须编译的时候加上了hive 1.0.0预编译版没有加入hive  1.0.1是含有hiv

小程序上拉下拉共存时不可使用scroll-view的解决方法

使用 bindscrolltolower ,必须搭配使用的 scroll-view 会导致小程序 "enablePullDownRefresh": true 下拉不能使用. 解决方法,就是当两者同时存在时,改 scroll-view 为 view ,改 bindscrolltolower 为 onReachBottom 函数. 这样在上拉加载,跟下拉刷新同时存在的时候, "enablePullDownRefresh": true 就可以生效了. wxml <v