Я хочу прочитать файл на моем диске e: из asp.net веб-приложение mvc

#asp.net-mvc #asp.net-mvc-4

#asp.net-mvc #asp.net-mvc-4

Вопрос:

Я хочу прочитать файл на моем диске e: из asp.net приложение mvc. Когда я пытаюсь получить к нему доступ из класса FileStream, выдается исключение file not found. Вот код.

  public byte[] GetEncFile(string path)
    {
        FileInfo fInfo = new FileInfo(path);
        FileStream encFileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
        BinaryReader reader = new BinaryReader(encFileStream);

        byte[] encFileBytes = reader.ReadBytes((int)fInfo.Length);

        return encFileBytes;
    }
  

Комментарии:

1. Из какой строки генерируется исключение? Есть ли какая-либо другая информация в ошибке?

2. убедитесь, что указан правильный путь к файлу..

3. во второй строке «FileStream encFileStream = новый FileStream(путь, FileMode. Открыть, FileAccess.Read);»

4. я могу получить доступ к своему файлу на диске c:, но не с дисков e:, d:,

5. На вашем диске e: клиент или сервер?

Ответ №1:

Если диск существует, то вам следует использовать

 HttpContext.Current.Server.MapPath
  

Потому что вы, возможно, используете виртуальный путь в параметре mathod.

попробуйте :

 FileInfo fInfo = new FileInfo(Server.MapPath(path));
  

преобразует виртуальный путь в физический.

Надеюсь, это поможет.

Комментарии:

1. Это Server.MapPath преобразует относительный к сайту путь в полный физический путь. Если операционная система уже знает полный путь («на моем диске E:»), то это не поможет.