Переименовывание файлов, формирование строки путя

  • Автор темы rudeman
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

rudeman

#1
Добрый день! Подскажите как проблемку решить..
Суть...Есть файл лога. Я функцией проверяю нарушена структура или нет.Если да - необходимо переименовать его и создать новый.
Ну новый создать проблем нету...
Переименовку нашел такую...
SHFILEOPSTRUCT op;
op.hwnd = NULL;
op.lpszProgressTitle = NULL;
op.pFrom = log_path;
op.pTo = new_log_path;
op.wFunc = FO_MOVE;
op.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI ;
но... вопрос в new_log_path...
у миня ж "испорченых" файлов может быть не 1... а несколько... некоторый набор... log1.bak, log2.bak и т.д.
Суть... как мне сформировать строку,которая new_log_path? )
Как слепить из "d:/log" некоего счетчика i и собственно окончания ".bak"?
И тогда я его смогу загнать в чтот типа
Код:
if (p_minor_status==161)
{
while(file!=NULL)
{
file = fopen(new_path, "w" );
if (file!=NULL)
{
i=0;
new_path ={очередной проверяемый путь }
i++;
}
}
SHFileOperation(&op);
}
т.е. пока не дойдет до файла который не может открыть(т.е. его нету), оно перебирает.. как тока доходит - переименовывает текущий лог в него...
Буду благодарен за советы.
Или может кто подскажет более простой вариант сделать эт?
 

grigsoft

Well-known member
15.11.2005
735
0
#2
Эээ, ну собственно путь собирается, видимо, примерно так:
Код:
TCHAR szPath[MAX_PATH] = _T("d:\\log");
LPTSTR szEnd = szPath+_tcslen(szPath);
TCHAR szNum[10];
...
int i=1;
...
_tcscpy(szEnd, _itot(i, szNum, 10));
_tcscat(szEnd, _T(".bak"));
// use szPath
По задаче в целом - это по потребностям надо смотреть, что потом с этими файлами делать придется. Можно пользоваться GetTempFilename, можно хранить последний номер и начинать искать с него.
 
R

rudeman

#3
Спасиб, собралось )
Сохранять не представляется возможным, так как с данными файлами будет работать не только этот код, но и другие программы. Тут именно нада определять следующий свободный путь для лога
 
Статус
Закрыто для дальнейших ответов.