检查文件夹是否只在C#.net中读取

时间:2011-09-22 08:10:21

标签: asp.net c#-4.0

我在asp.net(C#)4.0中工作。在上传图像之前,我想检查是否存在已上载图像的文件夹。如果它存在,是否为只读,如果它是只读的,我想使它不是只读的。我该怎么办每次启动应用程序时,该文件夹都设置为只读。所以我想通过编程方式检查它来避免这个问题。

我确实喜欢这个......

            SaveFilePath = Server.MapPath("~\\_UploadFiles\\") + FileName;
            DirectoryInfo oDirectoryInfo = new DirectoryInfo(Server.MapPath("~\\_UploadFiles\\"));
            if(!oDirectoryInfo.Exists)
                  Directory.CreateDirectory(Server.MapPath("~\\_UploadFiles\\"));
            else
            {
                if (oDirectoryInfo.Attributes.HasFlag(FileAttributes.ReadOnly))
                {
                    oDirectoryInfo.Attributes = FileAttributes.Normal;
                }
            }

            if (File.Exists(SaveFilePath))
            {
                File.Delete(SaveFilePath);//Error is thrown from here
            }

此代码从代码上的指定位置引发错误。文件夹“_UploadFiles”是只读的,但它仍然不会进入if语句来生成FileAttributes.Normal

错误是...... 访问路径'C:\ Inetpub \ wwwroot \ WTExpenditurev01_VSS_UploadFiles \ Winter.jpg'被拒绝。

1 个答案:

答案 0 :(得分:6)

使用System.IO.DirectoryInfo class

var di = new DirectoryInfo(folderName);

if(di.Exists())
{
  if (di.Attributes.HasFlag(FileAttributes.ReadOnly))
  {
    //IsReadOnly...
  }
}