Проверьте, доступна ли папка только для чтения в C # .net - PullRequest
1 голос
/ 22 сентября 2011

Я работаю в 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 Ответ

6 голосов
/ 22 сентября 2011

используйте класс System.IO.DirectoryInfo :

var di = new DirectoryInfo(folderName);

if(di.Exists())
{
  if (di.Attributes.HasFlag(FileAttributes.ReadOnly))
  {
    //IsReadOnly...
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...