Могу ли я запретить StreamReader читать подкаталоги? - PullRequest
0 голосов
/ 06 мая 2020

Процесс попадает на сервер и в каталог. Как мне заставить процесс прекратить чтение всего каталога файлов, используемых в указанном пути?

Dts.Events.FireInformation(0, "Attempting to get file: ", ftpFilePath, "", 0, ref False);

        Uri serverUri = new Uri(ftpFilePath);
        FtpWebRequest request;
        FtpWebResponse resp;

            string fileName = "";
            Dts.Variables["User::v_File_Exists"].Value = false;
            Dts.Variables["User::v_Remote_Path"].Value = fileName;

Проверить, ищет ли файловый процесс как на этом этапе, чтобы прекратить чтение любых подкаталогов после того, как файл найден или нет

            while (!reader.EndOfStream)
            {
                fileName = reader.ReadLine();
                Dts.Events.FireInformation(0, "Beginning of While loop ", fileName, "", 0, ref 
False);
                int index = fileName.IndexOf(".BO");
                //string subFolder = fileName.Substring(1, 5);
               // Dts.Events.FireInformation(0, "subfolder ", subFolder, "", 0, ref False);
                if (index != -1)
                {
                    //if (subfolderindicator != "/")

                        Dts.Events.FireInformation(0, "Valid File ", fileName, "", 0, ref False);
                        int time = 0;
                        string store = fileName.Substring(index - 8, 4);
                        Dts.Events.FireInformation(0, "store ", store, "", 0, ref False);

Проверить имя файла

if (store == Dts.Variables["User::v_Store_Number"].Value.ToString())
                        {
                            string fileTime = fileName.Substring(index - 5, 4);
                            Dts.Events.FireInformation(0, "filetime ", fileTime, "", 0, ref False);
                            int fileTimeNum = Int32.Parse(fileTime);
                            Dts.Events.FireInformation(0, "savedTime ", time.ToString(), "", 0, ref 
False);

Найти самый последний созданный файл

                            if (fileTimeNum > time)
                            {

Сохранить путь к самому последнему файлу для FTP-подключения в более позднем процессе

                                time = fileTimeNum;
                                fileName = ftpFilePath + fileName;
                                Dts.Events.FireInformation(0, "Most Recent ", fileName, "", 0, ref 
False);
                                Dts.Variables["User::v_File_Exists"].Value = true;
                                Dts.Variables["User::v_Remote_Path"].Value = fileName;
                            }
                        }

                }
            }

        }
        catch (Exception)
        {
            Dts.Variables["User::v_File_Exists"].Value = false;
            Dts.Variables["User::v_Remote_Path"].Value = "";
                Dts.TaskResult = (int)ScriptResults.Success;
            return;
        }

        Dts.TaskResult = (int)ScriptResults.Success;

После того, как файл правильный файл найден или нет, я не хочу читать какие-либо подкаталоги

ДОБАВЛЕН код для обхода

                    string subFolder = fileName.Substring(0, 4);
                    //Dts.Events.FireInformation(0, "ISsubfolder ", subFolder, "", 0, ref False);
                    //Dts.Events.FireInformation(0, "Valid File ", fileName, "", 0, ref False);
                    // Prevent the process from reading the replacement files from the backup folder
                    if (subFolder != "bkup")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...