CSharp Как сделать рекусивный чек папок FTP на файл? | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

CSharp Как сделать рекусивный чек папок FTP на файл?

KRNS

Джун
Автор темы
21 Ноя 2023
2
0
0
Как сделать рекусивный чек папок FTP на .exe файл с последующей заменой на свой, с таким же именем?


Идея такая, но не рабочая -
static string GetExeFileNameOnServer(string ftpServer, int port, string username, string password, string directory)
{
string exeFileName = "";
try
{
FtpWebRequest listRequest = (FtpWebRequest)WebRequest.Create($"ftp://{ftpServer}:{port}{directory}");
listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
listRequest.Credentials = new NetworkCredential(username, password);

using (FtpWebResponse listResponse = (FtpWebResponse)listRequest.GetResponse())
using (Stream listStream = listResponse.GetResponseStream())
using (StreamReader listReader = new StreamReader(listStream))
{
string line = null;
while ((line = listReader.ReadLine()) != null)
{
if (line.ToLower().EndsWith(".exe"))
{
string[] segments = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
exeFileName = segments[segments.Length - 1].Trim();
break;
}
// If the entry is a directory, apply recursion
else if (line.Trim().ToLower().StartsWith("d"))
{
exeFileName = GetExeFileNameOnServer(ftpServer, port, username, password, directory + line + "/");
}
if (!string.IsNullOrEmpty(exeFileName)) break;
}
}
}
catch (WebException ex)
{
Console.WriteLine($"An error occurred while accessing FTP server: {ex.Message}");
}
return exeFileName;
}
 
Активность:
Пока что здесь никого нет