Читайте из файла, который меняется каждый день в C # - PullRequest
0 голосов
/ 30 марта 2011

Я хочу автоматизировать программу, которая читает файл, обрабатывает его и затем записывает его в новый файл. Проблема заключается в том, что новый файл поступает каждый день, а его содержимое схоже, имена входных и выходных файлов будут меняться ежедневно. Имя файла будет в следующем формате: SAPHR_Joiners_20110323. Как вы можете видеть, первая часть имени будет постоянной, но дата будет уникальной ...... Как я смогу это сделать?

Большое спасибо, ребята

Ответы [ 4 ]

2 голосов
/ 30 марта 2011

Если вы хотите прочитать последний файл в папке, вы можете запросить дату создания, используя System.IO.File.GetCreationTime

В коде:

string myFile = 
            Directory.GetFiles(@"C:\Temp")
            .OrderBy<String, DateTime>(file => File.GetCreationTime(file))
            .First();

Однако, если вы знаете, что имя файла будет следовать строгому соглашению об именах, тогда лучше получить доступ к файлу, генерируя имя файла, как подсказывают другие ответы.

1 голос
/ 30 марта 2011

Разве вы не можете просто сгенерировать имя файла динамически в вашей программе, а затем открыть соответствующий файл?Вот как то так:

string filename = "SAPHR_Joiners_" + DateTime.Now.ToString("yyyyMMdd");
string[] filecontents = File.ReadAllLines( filename );
0 голосов
/ 30 марта 2011

В прежние времена VB6 одна техника, которая все еще используется в наши дни - folder monitoring

Вы продолжаете проверять, есть ли в папке файлы, каждые x в x минутах или, в вашем случае, каждый день в XX часах, например.

и вы можете создать Службу из вашей программы, и это обеспечит ее запуск каждый раз (пока машина включена):)

В те дни, в VB6 у нас было не так много, как у вас сегодня, поэтому для просмотра папок с определенными типами файлов (или с чем угодно) *.* вы можете использовать System.IO.FIleSystemWatcher (пример на этой странице), и для обработки файла просто используйте System.IO.TextReader, например

0 голосов
/ 30 марта 2011

Используйте класс FileSystemWatcher, чтобы искать новые входящие файлы, если вы хотите быстро переделать запрос, в противном случае просто найдите файл на основе текущей даты. Если у вас есть другие проблемы, сообщите нам.

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