C # FTP-файл в каталог не возвращает доступ - PullRequest
0 голосов
/ 17 февраля 2011
public static void uploadMethod2()
        {
            FileInfo toUpload = new FileInfo("0000000002.csv");
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.myftp.co.uk/" + toUpload.Name);
            request.Method = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = new NetworkCredential("user", "password");
            **Stream ftpStream = request.GetRequestStream();**
            FileStream file = File.OpenRead("0000000002.csv");
            int length = 1024;
            byte[] buffer = new byte[length];
            int bytesRead = 0;
            do
            {
                bytesRead = file.Read(buffer, 0, length);
                ftpStream.Write(buffer, 0, bytesRead);
            }
            while (bytesRead != 0);
            file.Close();
            ftpStream.Close();
            Console.WriteLine("done");
        }

Я получил приведенный выше код от msdn, но я немного запутался в строке webrequest.create.строка, которую я положил вокруг звездочек, возвращает ошибку «нет доступа или файл не найден», что я ожидаю, поскольку в каталоге еще нет файла с именем 0000000002.csv, но на веб-сайте msdn говорится, что нужно добавить файл, который я хочу загрузить.вместе с URL-адресом ftp.Я пытался без добавления имени файла к URL, но это выводит сообщение об ошибке «Запрошенный URI недопустим для этой команды FTP».Я попробовал учетные данные в браузере (те, которые в приведенном выше примере, конечно, не являются действительными учетными данными), и я определенно даю мне доступ к каталогу.есть идеи?любая помощь будет оценена :) 1002 *

1 Ответ

0 голосов
/ 17 февраля 2011

Я думаю, вам нужно проверить доступ к каталогу с помощью перечислителя FileAccess перед любой операцией с файлом.если это только Чтение, то установите атрибут каталога как Нормальный с помощью FileAttributes.

FileAttributes.Normal

надеюсь, это поможет вам

...