D
dmitry003
здравствуйте! есть вопрос - пытаюсь написать код для переименования всех файлов в заданной папке с помощью функций SHFileOperation и FindFirstFile - пишу код - проект компилируется (vs-2005 prof), но при попытке выполнить переименование - выскакивает мессадж параметр задан неверно. вот код:
это последний вариант - до этого пробовал и без strcpy -результат тот же самый- компилируется но не исполняется.
Код:
void CPereimDlg::OnBnClickedButton3()
{
WIN32_FIND_DATA winFileData;
SHFILEOPSTRUCT fo;
ZeroMemory(&fo, sizeof(fo));
HANDLE hFile;
int nLen = szDisp.GetLength();
LPTSTR lpszBuf = szDisp.GetBuffer(nLen);
szDisp.ReleaseBuffer();
if (GetDlgItemText(IDC_EDIT1, szDisp))
{
lstrcat(lpszBuf,"\\*.txt");
hFile = FindFirstFile(lpszBuf,&winFileData);
if (hFile!=INVALID_HANDLE_VALUE)
{
do
{
char chFrom [256], chTo [256];
strcpy (chFrom, winFileData.cFileName);
strcpy (chTo, newName);
chFrom[strlen(chFrom)] = 0;
chFrom[strlen(chFrom) + 1] = 0;
chTo[strlen(chTo)] = 0;
chTo[strlen(chTo) + 1] = 0;
fo.wFunc = FO_RENAME;
fo.pFrom = chFrom;
fo.pTo = chTo;
fo.fFlags = FOF_RENAMEONCOLLISION;
}
while (FindNextFile(hFile,&winFileData)!=0);
FindClose(hFile);
}
int nRes = SHFileOperation(&fo);
}
return;
}