2013-06-03 99 views
2

我无法使用下面的代码创建.txt文件。我得到一个异常如下:C#,创建.txt文件

未处理的异常:System.UnauthorizedAccessException:对的 路径 'C:\ log.txt的' 被拒绝。

我已经在线查看并完成了类似的事情,以什么是在api上。下面是我的代码,所以你可以理解我的逻辑是什么。你认为什么导致这个异常?提前致谢!

static StreamWriter swt; 
static string logFile = @"C:\log.txt"; 
static FileStream fs; 
static void Main(string[] args) 
{ 
    Console.Out.WriteLine(swt); 
    string root = args[0];      
    if (!File.Exists(logFile)) 
    { 
     try 
     { 
      fs = File.Create(logFile); 
     } 
     catch (Exception ex) 
     { 
      swt.WriteLine("EXCEPTION HAS BEEN THROWN:\n " + ex + "\n"); 
     } 
     { 

     } 
    } 
} 
+9

我的猜测是你没有足够的权限直接写入'C:'根目录。尝试以管理员身份运行程序或写入可访问的目录(如我的文档) –

+0

让我试试,谢谢 – haysam

+0

您的程序以管理模式运行? –

回答

9

您很可能会遇到此错误,因为标准用户无法在没有提升权限的情况下写入驱动器的根目录。见here

+0

+1,另外:**不要写入需要提升权限的文件夹**。 – user7116

2

检测文件夹权限。它必须对登录的用户拥有写入权限。

2

是的,这是权限错误。您没有足够的权利在C:驱动器中写入文件。要写入这些类型的文件夹/驱动器,您需要管理员权限。

你可以给你的应用程序管理员权限。简单的方法是强制您的应用程序以管理员帐户/权限启动。要实现此目的,请执行以下操作:

解决方案资源管理器 - >您的项目 - >添加新项目(右键单击) - >应用程序清单文件。

在这个文件改变requestedExecutionLevel

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

这些强制执行,只有管理员权限申请。在Windows 8/7/Vista上,当您启动应用程序时,它将显示UAC(用户访问控制)对话框。

希望这会帮助你......