错误信息 ACCESS TO PATH DENIY程序在创建文件的时候 程序在服务上出现的异常请问  能不能在程序中提前判断,以便及时给出提示 
  
用户是否具备 指定文件目录或者磁盘的权限

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_4f183d960100yd6z.html如果指定账户没有相应函数的话, 就try catch尝试创建一个临时文件,失败就是没权限
      

  2.   

    在IIS配置的时候就给权限或者在webconfig模拟有权限的用户
      

  3.   


    C# fileInfo.create() 并没有返回信息 只能TRY 不过 创建失败 也可能有别的原因  所以 想寻找针对权限的判别办法  再次感谢您的帮助 
      

  4.   

    程序中判断的话  就像一楼 那样 try  catch  捕获你程序在文件夹内进行 增删改的操作的时候
    在catch 中提示 对此目录无权限
      

  5.   

    用File.Create,msdn说明了返回的异常类型
    UnauthorizedAccessException应该是你需要判断的异常。参考http://msdn.microsoft.com/en-us/library/d62kzs03(v=VS.90).aspxExceptions段描述了File.Create都会抛出什么异常。
      

  6.   

    catch      捕获 的异常类型    不只一种   
    可以分别判断下给不同提示
    我一般用的少    有SQL异常   运行时异常 等等
      

  7.   

    好像FileIOPermission 也可以
    FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
    f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
    try
    {
        f2.Demand();
    }
    catch (SecurityException s)
    {
        Console.WriteLine(s.Message);
    }
    参考
    http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx
      

  8.   


    这段看过了想解决 获取IIS对文件是不是只读的权限   
    而不是 解决可以创建文件 或者 给文件添加写或者全控的权限 
      

  9.   

    去买米的时候 告诉别人鸡蛋不要 面粉不要 馒头不要  。现在就是买米  很单纯别让我try catch了
      

  10.   

    比如  文件存不存在
    if(!file.isExists())
    {
            //文件存不存在
    }能不能获得权限if(!file.canCreate())
    {}
      

  11.   

    同觉得Catch可以啊
    try
    {
        买东西
    }
    catch(不能买米Exception ex)
    {
        你当前不能买米,请联系管理员
    }
    catch(不能买面粉Exception ex)
    {
        你当前不能面粉,请联系管理员
    }catch(Exception ex)
    {
        买东西出现未知异常,请联系管理员
    }
      

  12.   

    试试这样的代码
        FileIOPermission writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename);    if (SecurityManager.IsGranted(writePermission))
        {
            using (FileStream fstream = new FileStream(filename, FileMode.Create))
            using (TextWriter writer = new StreamWriter(fstream))
            {
                    // try catch block for write permissions 
                    writer.WriteLine("sometext");
            }
        }
        else
        {
            //perform some recovery action here
        }
    不过估计你得测试一下,在一个目录下创建文件需要什么样的FileIOPermissionAccess不过我还是觉得用异常好点。