FileStream не позволяет мне создать файл на локальном компьютере? - PullRequest
2 голосов
/ 25 октября 2010

Я использую FileStream для загрузки информации о FTP-сервере в каталог на моем диске C: \. По какой-то причине, хотя я даже пытался установить права доступа к каталогу даже для доступа «Все», мне дали следующее исключение:

System.UnauthorizedAccessException: доступ к пути 'C: \ tmpfolder' запрещен '

Почему это? Вот выдержка из моего кода.

byte[] fileData = request.DownloadData(dataMap.GetString("ftpPath") + "/" + content);
file = new FileStream(@"C:\tmpfolder", FileMode.Create, FileAccess.Write);
downloadedlocation = file.ToString();
file.Write(fileData, 0, fileData.Length);

Кроме того, моя программа не в ASP.NET, а просто консольное приложение C #.

Ответы [ 2 ]

4 голосов
/ 25 октября 2010

Если не имеет значения, где хранить файл, попробуйте

using System.IO;
.
.
.
string tempFile = Path.GetTempFileName();

Это создаст временный файл во временной папке вашей учетной записи. Не беспокойтесь о разрешениях; -)

0 голосов
/ 25 октября 2010

Я думаю, у вас нет прав на запись в c: \, где вы пытаетесь создать файл с именем tmpfolder.

Если в вашем c: \ есть папка с именем tmpfolder, измените код на

file = new FileStream(@"C:\tmpfolder\myfile.tmp", FileMode.Create, FileAccess.Write);

НТН

Mario

РЕДАКТИРОВАТЬ: На следующем примечании: перейдите по этой ссылке Как создать временный файл (для записи) в C #? , он может вам понадобиться, если у вас одновременно выполняется несколько файловых операций время. Не забудьте потом удалить файлы.

...