Я видел десятки примеров, когда проблема была устранена с помощью библиотеки в названии. Типичный пример я вижу, что должно работать это:Проблемы с System.Net.FtpClient с openwrite
string destinationPath = PathInfo.FileNameConvention;
using (FileStream fileStream = File.OpenRead(sourcePath))
{
using (Stream ftpStream = FTPClient.OpenWrite(string.Format("'{0}'", destinationPath), FtpDataType.ASCII))
{
fileStream.CopyTo(ftpStream);
}
}
Когда я делаю этот код, я получаю ошибку длины имени на бревне ftpTrace. Когда я использую только путь назначения, я получаю ошибку тайм-аута. Я отправляю на мэйнфрейм MVS OS. Я могу подключиться и войти в систему просто отлично. возможность отправлять команды сайта с помощью метода ftpclient.execute. Я попытался, из любопытства, отправить команду put с помощью метода execute и получить неизвестную команду для put. Кто-нибудь тоже имеет эту проблему?
Также соединение работает нормально, поскольку я вручную отправил файл через ftp-запрос ftp и был успешным.
Некоторая справочная информация, метод OpenWrite библиотеки отправляет команду STOR с использованием отправленного пути и по умолчанию будет бинарным.
при выполнении FTP, возможно, вам нужно использовать Change Dir команды, так что длинный файл имена или имена путей не влияют на функциональность, которую я бы проверил на эту первую. «Запуск ChangeDir, а затем передать имя файла не полный путь» если это помогает – MethodMan
@MethodMan Path.GetFileName (localFile) в основном делает, как вы описали. Он принимает полный локальный путь и получает только имя файла. – ggiaquin16