我用C#写了一个生成文件的小方法,部分代码如下:
string path = Server.MapPath("js/123.js");
        if(File.Exists(path))
        {
            File.Delete(path);
        }        StreamWriter sw = File.CreateText(path);
        Random rd = new Random();
        
        sw.WriteLine(rd.Next().ToString().Trim());
        sw.Close();
现在遇到一个问题,如果该文件为只读,程序运行到该句报异常File.Delete(path),如何改变生成文件的属性?将其属性设置为win2003中everyone中“完全控制”?
求各位帮忙,希望帖子不要沉下去!!!!谢谢大家了!!!!!(我没权利发300分,要是有满意答案,我再发帖补上分数!!!)

解决方案 »

  1.   

    if(File.Exists(destinationFile))
    {
     FileInfo fi=new FileInfo(destinationFile);
     if(fi.Attributes.ToString().IndexOf("ReadOnly")!=-1)
      fi.Attributes=FileAttributes.Normal;
      File.Delete(destinationFile);
    }
    这个应该可以修改只读属性将其属性设置为win2003中everyone中“完全控制”这个似乎是设置访问权限,与只读/非只读无关吧
      

  2.   


    void AddFullControl(string filename) {
        FileSecurity fs = File.GetAccessControl(filename);
        fs.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
        File.SetAccessControl(filename, fs);
    }注意,如果你是在asp.net下运行, 要在IIS的目录权限中加入匿名访问, 并且设置高级账号(至少有目录访问权限的账号)
      

  3.   

    从.net2.0以来命名空间已经划分的很有条理,找找都能找到.
      

  4.   

    删除不了是因为默认的ASPNET账号权限不够.
    你可以在web.config中加入
    <system.web>
       <identity impersonate="true" userName="[高级账号名]" password="password" />
    </system.web>
      

  5.   

    如果是只读问题楼上有答案如果是权限问题,请修改你的IIS目录权限设制。
    在远程IIS上,一般都有足够权限删除你自己目录下的文件的。
      

  6.   

    <system.web> 
      <identity impersonate="true" userName="[高级账号名]" password="password" /> 
    </system.web>