Originally Posted by
jocdrew21
What do you have so far? Post some code.
Code:
BOOL CMP3TODAPDlg::OnInitDialog()
{
.
.
.
// my initializations:
TCHAR szMsg[128];
TCHAR szDriveLetter[3];
TCHAR szVolumeName[MAX_PATH + 1] = {0};
TCHAR fileSystemName[MAX_PATH + 1] = {0};
DWORD serialNumber = 0;
DWORD maxComponentLen = 0;
DWORD fileSystemFlags = 0;
DWORD dwSize = MAX_PATH;
TCHAR szLogicalDrives[MAX_PATH] = {0};
m_bShowRemovableDrivesOnly = TRUE;
UpdateData(FALSE);
bContinueLooping = TRUE;
DWORD dwResult = GetLogicalDriveStrings(dwSize,szLogicalDrives);
if (dwResult > 0 && dwResult <= MAX_PATH)
{
TCHAR* szSingleDrive = szLogicalDrives;
m_WndListBoxDrives.ResetContent();
while(*szSingleDrive)
{
if (bContinueLooping && (!m_bShowRemovableDrivesOnly || GetDriveType(szSingleDrive) == DRIVE_REMOVABLE))
{
GetVolumeInformation(szSingleDrive, szVolumeName, ARRAYSIZE(szVolumeName), &serialNumber, &maxComponentLen, &fileSystemFlags, fileSystemName, ARRAYSIZE(fileSystemName));
_memccpy(szDriveLetter, szSingleDrive, 0, 2);
szDriveLetter[2] = 0;
_stprintf(szMsg, "%s %s", szDriveLetter, szVolumeName);
m_WndListBoxDrives.AddString((LPCSTR)szMsg);
}
szSingleDrive += strlen(szSingleDrive) + 1; // get the next drive
}
}
return TRUE;
}
void CMP3TODAPDlg::OnSelchangeList1()
{
UpdateData(TRUE);
TCHAR szDriveSpec[4];
TCHAR szFileSpec[MAX_PATH];
TCHAR szFile2Spec[MAX_PATH];
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
TCHAR szCurDir[MAX_PATH];
BOOL bSuccess;
GetCurrentDirectory(MAX_PATH, szCurDir);
_tcscat(szCurDir, _T("\\")); // append backslash
_stprintf(szFileSpec, "%s*.mp3", szCurDir); // mp3 files only
hFind = FindFirstFile(szFileSpec, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
ShowWindow(SW_SHOW); // show application window (doesn't work!)
MessageBox(_T("No mp3 file in current folder!\t"), szAppName, MB_OK|MB_ICONEXCLAMATION);
}
while (hFind != INVALID_HANDLE_VALUE)
{
_stprintf(szFileSpec, "%s%s", szCurDir, FindFileData.cFileName);
_stprintf(szFile2Spec, "%s%s", szDriveSpec, FindFileData.cFileName);
CopyFile(szFileSpec, szFile2Spec, FALSE); // copy curDir:\*.mp3 to disk:\
if (!FindNextFile(hFind, &FindFileData))
{
FindClose(hFind);
hFind = INVALID_HANDLE_VALUE;
}
}
ASSERT(AfxGetMainWnd() != NULL);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
void CMP3TODAPDlg::OnCancel()
{
bContinueLooping = FALSE;
CDialog::OnCancel();
}