C # код извлекает кэшированную версию данных с FTP - PullRequest
0 голосов
/ 20 июня 2019

В моем проекте я загружаю несколько файлов с ftp, созданных через IIS7, а также через сервер Linux, и сохраняю их в моей папке Appdata / Roaming. Проблема возникает, когда я изменяю содержимое файла csv или просто удаляю старый файл и заменяю его новым файлом с тем же именем, но с измененным содержимым.

Каждый раз, когда мне нужно переименовать этот файл и загрузка переименованного файла работает. Это указывает на загрузку некоторого кэшированного образа файла, который я не могу найти ни в моей локальной системе, ни на ftp-сервере.

public static bool FTPFileDownload(string strFolderName, string 
pathToStore, bool blIsSingleFile = true, string strFileType = "")
    {
        try
        {
            if (!Directory.Exists(pathToStore))
            {
                // Try to create the directory.
                DirectoryInfo di = Directory.CreateDirectory(pathToStore);
            }
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ConfigurationManager.AppSettings["FTPUrl"].ToString() + strFolderName);
            request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["FTPUser"].ToString(), ConfigurationManager.AppSettings["FTPPassword"].ToString());
            request.Method = WebRequestMethods.Ftp.ListDirectory;
            request.Proxy = null;
            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            StreamReader streamReader = new StreamReader(response.GetResponseStream());
            System.Collections.Generic.List<string> directories = new System.Collections.Generic.List<string>();

            string line = streamReader.ReadLine();
            while (!string.IsNullOrEmpty(line))
            {
                //If extension is available match with extension and add.
                bool blAddFile = false;
                if (!String.IsNullOrEmpty(strFileType))
                {
                    string strExt = Path.GetExtension(ConfigurationManager.AppSettings["FTPUrl"].ToString() + line).Remove(0, 1);
                    if (strExt.ToLower() == strFileType.ToLower())
                        blAddFile = true;
                }
                else
                    blAddFile = true;

                if (blAddFile)
                {
                    directories.Add(line);
                }
                line = streamReader.ReadLine();
            }
            streamReader.Close();

            using (WebClient ftpClient = new WebClient())
            {
                ftpClient.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["FTPUser"].ToString(), ConfigurationManager.AppSettings["FTPPassword"].ToString());

                for (int i = 0; i <= directories.Count - 1; i++)
                {
                    if (directories[i].Contains("."))
                    {
                        string path = ConfigurationManager.AppSettings["FTPUrl"].ToString() + strFolderName
                            + (blIsSingleFile ? "" : "/" + directories[i].ToString());

                        string trnsfrpth = pathToStore + directories[i].ToString();
                        ftpClient.DownloadFile(path, trnsfrpth);
                    }
                }
                return true;
            }
        }
        catch (Exception ex)
        {
            FileLogger.logMessage(ex.Message);
            if (FileLogger.IsDebuggingLogEnabled)
            {
                FileLogger.HandleError("FTPFileDownload", ex, "Common Helper Error 4:");
            }
            return false;
        }
    }

Я не знаю, что с ним не так. Либо мой код неверен, либо настройки или среда на FTP-сервере.

Пожалуйста, предложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...