无法创建类的实例

时间:2011-06-06 14:12:47

标签: c# .net exception-handling selenium

  

无法创建类的实例   识别TestClass。错误:   System.UnauthorizedAccessException的:   访问路径'C:\ Documents and   设置\管理员\我的   Documents \ Visual Studio   2010 \ Projects \ TestProject'被拒绝。

     

System.IO .__ Error.WinIOError(的Int32   errorCode,String maybeFullPath)   System.IO.FileStream.Init(String path,   FileMode模式,FileAccess访问,   Int32权限,布尔值使用权限,   FileShare共享,Int32 bufferSize,   FileOptions选项,   SECURITY_ATTRIBUTES secAttrs,String   msgPath,Boolean bFromProxy,Boolean   useLongPath)   System.IO.FileStream..ctor(字符串   path,FileMode模式,FileAccess   访问,FileShare共享,Int32   bufferSize,FileOptions选项,   String msgPath,Boolean bFromProxy)   System.IO.FileStream..ctor(字符串   路径,FileMode模式)   C:\ Documents和中的KM_Automation.KM_Library.GetAutoConfig()   设置\管理员\我的   Documents \ Visual Studio   2010 \项目\ TestProject \ Test_Library.cs:   第40行 KM_Automation.KM_Functional_Trans_General..ctor()   在C:\ Documents和   设置\管理员\我的   Documents \ Visual Studio   2010 \项目\ TestProject \ TestClass.cs:   第33行

Test_Library.cs:

public string[] GetAutoConfig()
{
    FileStream fs = new FileStream(sConfigFile, FileMode.Open);  // line 40
    StreamReader sr = new StreamReader(fs);
    string line = "";
    string[] arrline = new string[2];
}

TestClass.cs:

arrConfig = KMLib.GetAutoConfig(); // line 33

为什么我收到此错误?我确保该文件夹已与所有人共享,并删除了只读。

3 个答案:

答案 0 :(得分:2)

您收到此错误,因为异常消息显示当前用户无法访问相关文件。您需要调整该文件及其父目录的权限,以允许访问相关用户

部分问题是您选择的位置。看起来您正在尝试在一组用户之间共享配置文件,但您已选择文档的位置在Administrator目录下。

  

C:\ Documents and Settings \ Administrator \ My Document

如果您想在用户之间共享,那么我会使用All UsersPublic目录,因为它适用于此类操作。

答案 1 :(得分:1)

当您共享文件夹时,Windows会查看两组权限:共享权限,然后是实际的文件安全权限。除非您的文件夹安全性设置为允许每个人读取访问权限,否则您的共享设置设置为什么并不重要。

最佳做法是将“共享级别”设置为“完全控制”,然后使用“安全性”设置微调权限。默认情况下,您的用户文件夹(Administrator)只能由该命名用户和系统上的管理员编写和读取。

答案 2 :(得分:1)

当它说它没有权限时,它可能是 - 例如,如果您正在运行网站,则无法读取任何文件夹,因为用于匿名访问者的默认用户被“沙盒化”到低权限在文件系统上。

仔细检查您的应用程序运行的用户名(网站或桌面应用),为其设置安全性和共享权限(如果您通过共享访问它)。

另一个错误是该文件不存在。这是我们遇到的一个奇怪的误导性错误 - 但是,可以肯定的是,在执行之前检查sConfigFile的值。