Разрешение на файл (запись)

Здравствуйте,
Как только я получил этот код для работы без каких-либо ошибок, и он загрузил файл.
Теперь он дает мне ошибку разрешения,
я не получаю всплывающее окно управления доступом, которое должно отображаться .
В любом случае,
как я могу получить этот код для загрузки моего файла?

WebClient request = new WebClient();
request.Credentials = new NetworkCredential(txtFTPuser.Text, txtFTPpassword.Text);
byte[] fileData = request.DownloadData(fullDownloaPath);//dnoces.dreamhost.com
FileSecurity security = File.GetAccessControl(downloadTo);

FileSystemAccessRule rule = new FileSystemAccessRule(@"BUILTIN\Users", 
    FileSystemRights.FullControl, AccessControlType.Allow);

File.SetAccessControl(downloadTo, security);
try
{
    FileStream f = File.Create(downloadTo/*+@"\"+file*/);
    f.Write(fileData, 0, fileData.Length);
    f.Close();
    MessageBox.Show("Completed!");
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
}

person funerr    schedule 09.10.2011    source источник
comment
попробуйте запустить приложение от имени администратора   -  person    schedule 09.10.2011
comment
Это все еще дает мне ту же ошибку ... Отказано в доступе к пути ... отказано. (и для @ShadowWizard, WinForms)   -  person funerr    schedule 09.10.2011
comment
Какая именно строка выдает ошибку? Измените на MessageBox.Show(e.ToString());, чтобы увидеть полную ошибку с трассировкой стека.   -  person Shadow Wizard Wearing Mask V2    schedule 09.10.2011
comment
imageupload.org/?d=424CC50D1 – ошибка   -  person funerr    schedule 09.10.2011
comment
Папка Games — это папка виртуальной оболочки. Выберите реальный каталог.   -  person Hans Passant    schedule 09.10.2011
comment
Я не понимаю смысла папки vitural shell(@HansPassant), но я попробовал еще несколько папок, и она все еще не работает.   -  person funerr    schedule 09.10.2011


Ответы (1)


Что находится в переменной «downloadTo»? Я немного смущен вашим кодом. Поскольку вы можете выполнить GetAccessControl(), я предполагаю, что он должен содержать вашу папку. Если бы это был ваш файл, он бы потерпел неудачу, потому что его еще не существует.

но тогда ваш код продолжается с

FileStream f = File.Create(downloadTo/*+@"\"+file*/);

поскольку вы написали /* */, ваша переменная «файл» закомментирована, что заставляет меня предположить, что downloadTo должен содержать полный путь, включая имя файла.

Вы можете попробовать жестко закодировать файл назначения?

(например, FileStream f = File.Create(@"c:\\users\\ваш пользователь\\myfile.bin");

Насколько я могу интерпретировать ваш код, вы пытаетесь записать в папку как таковую без указания имени файла.

person tazyDevel    schedule 10.10.2011
comment
Спасибо, но я понял это (это то, что я сделал). - person funerr; 10.10.2011