Windows filerenaming techniques

Started by
0 comments, last by b2b3 19 years, 5 months ago
When I try to run this renaming test application, it gives the following errors in debug mode: 'testbase.exe': Loaded 'C:\WINNT\system32\NTDLL.DLL', Cannot find or open a required DBG file. 'testbase.exe': Loaded 'C:\WINNT\system32\KERNEL32.DLL', Cannot find or open a required DBG file I noticed that SetFileShortName() needs win XP and I'm running on win 2k, so how can I rename a file in win 2k?

int main()
{
	string foldername;
	cout << "Enter folder name." << endl;
	cin >> foldername;
	int fileindex = 0;
	string filenamestring, tempstring;

	WIN32_FIND_DATA findfiledata;
	HANDLE hFind, hFile;
	foldername += "\\*.*";
	hFind = FindFirstFile(foldername.c_str(), &findfiledata);

	if(hFind != INVALID_HANDLE_VALUE)
	{
		tempstring = findfiledata.cFileName;
		tempstring.erase(0,tempstring.find("."));
		filenamestring = '0' + tempstring;
		hFile = CreateFile(findfiledata.cFileName,
        GENERIC_ALL,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
		SetFileShortName(hFile, filenamestring.c_str());

		while (FindNextFile(hFind, &findfiledata) != 0) 
		{
			++fileindex;
			tempstring = findfiledata.cFileName;
			tempstring.erase(0,tempstring.find("."));
			filenamestring = inttostring(fileindex) + tempstring;
			hFile = CreateFile(findfiledata.cFileName,
			GENERIC_ALL,
			0,
			NULL,
			OPEN_EXISTING,
			FILE_ATTRIBUTE_NORMAL,
			NULL);

			SetFileShortName(hFile, filenamestring.c_str());
		}
	}
	CloseHandle(hFile);
	FindClose(hFind);

	return 0;
}

[Edited by - Tertsi on November 25, 2004 5:02:44 PM]
Advertisement
Try MoveFileEx or MoveFile to rename your files or directories.
It's very simple to use and is supported from win95 up.
Info on msdn is here

This topic is closed to new replies.

Advertisement