System.IO.File.Exists(file) 查看文件是否存在file是我的文件路径,其实在我的项目中是存在的,但上面的判断却一直在报FALSE的错误,网上看说与ASPNET 用户有关,想问下这个有什么好的方法解决的。本人用的是WIN7的系统,用户也是管理员的权限c#

解决方案 »

  1.   

    Asp.Net的用户是AspNet,却并非所谓的管理员用户
    路径是否正确,ASPNET用户对其是否有读权限
      

  2.   

    一直报false的错误是什么意思?应该是true但却是false还是?
      

  3.   


    是应该是true,但却是false
      

  4.   

    ASP.NET的路径是虚拟路径,楼主看看你的路径,如果是有具体盘符的(例如C:),那就是错了这个问题太抽象了
    把代码贴上来看看
      

  5.   

     string file = string.Format("{0}\\Update.xml", Global.AssemblyPath);
         if (!System.IO.File.Exists(file))
         {
            MessageBox.Show("配置文件不存在!");
            return;
         }
      

  6.   

    同意该解释
     string file = string.Format("{0}\\Update.xml", Global.AssemblyPath);
         if (!System.IO.File.Exists(file))
         {
            MessageBox.Show("配置文件不存在!");
            return;
         } Global.AssemblyPath:我访问的是当前项目所在的路径
      

  7.   

    你的看你物理路径下是否存在对应的文件,如果没有的话肯定就是false
      

  8.   

    首先,楼主分析这个问题看样子楼主是在Web Application遇到这个问题的首先楼主要新建个ConsoleApp,把你代码贴进去,如果运行是好的
    那就是我前面说的问题,看下下面的文章
    http://developer.51cto.com/art/200908/147797.htm如果在ConsoleApp还是出错了
    那就是你的路径不对
    你把string file = string.Format("{0}\\Update.xml", Global.AssemblyPath);
    生成的string贴到地址里,看看能不能打开这个文件
    如果不能,就好好检查路径和文件地址是否匹配
      

  9.   

    如果发布到IIS上,IIS网站物理路径凭证设置成用户权限,对应的应用程序池高级属性中标识权限也改成用户权限。 访问文件权限添加everyone读权限。
      

  10.   

    string file = string.Format("{0}\\Update.xml", Global.AssemblyPath);
    /// <summary>
    /// 当前应用程序所在的路径
    /// </summary>
    public static string AssemblyPath
    {
                //get{ return Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location );}
                get { return Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); }
    }已经解决  这边获得的路径前面会包含一个file:\\所以每次在判断文件是否存在的时候直接抛出false,谢谢各位了