#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:»), то это не поможет.