Exemplo n.º 1
0
void COpenFileDlg::AddRecursiveFiles( const CUString& strDir,int nItem )
{
	CFileFind	fileFind;
	CUString		pathAndFileType = strDir + CUString( _W( "\\*.*" ));
	BOOL		bStop=FALSE;

    CUStringConvert strCnv;

	// Iterate through the items in the listbox and populate the listconrol.
	if (fileFind.FindFile( strCnv.ToT( pathAndFileType ) ) )
	{
		do
		{
			bStop=(fileFind.FindNextFile()==0);
			CUString strFileName = CUString( fileFind.GetFileName() );
			CUString strFileRoot = CUString( fileFind.GetRoot() );
			CUString strFileType;

			if (	TRUE == fileFind.IsDirectory() && 
					FALSE == fileFind.IsDots() &&
					TRUE == m_bRecursiveDir )
			{
				AddRecursiveFiles( strDir + CUString( _W( "\\" ) ) + strFileName, nItem );
			}

			if (fileFind.IsDirectory()==FALSE && fileFind.IsDots()==FALSE)
			{
				int nPos=strFileName.ReverseFind( _T( '.' ) );
				

				if (nPos>0)
				{
					CUString strExt;
					strExt = strFileName.Right(strFileName.GetLength()-nPos-1);

					strFileType = strExt;

					strExt.MakeUpper();

					if ( CompareExt( strExt ) == TRUE )
					{
						CUString strFileSize;
						CUString strFileDate;
						CTime	fileTime;

						// Get the data/time stamp of this file
						fileFind.GetLastWriteTime( fileTime );

						// Format date time string
						strFileDate.Format( _W( "%4d/%02d/%02d %02d:%02d" ), fileTime.GetYear(), fileTime.GetMonth(), fileTime.GetDay(), fileTime.GetHour(), fileTime.GetMinute() );

						strFileSize.Format( _W( "%10.2f" ), fileFind.GetLength() / ( 1024.0 * 1024.0 ) );

                        CUStringConvert strCnv;

						m_ctrlRequestedFiles.InsertItem( nItem, strCnv.ToT( strFileName ));

						m_ctrlRequestedFiles.SetItemText( nItem, FILE_OPEN_TYPE, strCnv.ToT( strFileType ) );

						m_ctrlRequestedFiles.SetItemText( nItem, FILE_OPEN_DATE ,strCnv.ToT( strFileDate ) );

						m_ctrlRequestedFiles.SetItemText( nItem, FILE_OPEN_PATH, strCnv.ToT( strFileRoot ) );

						m_ctrlRequestedFiles.SetItemText( nItem, FILE_OPEN_SIZE, strCnv.ToT( strFileSize ) );

						m_ctrlRequestedFiles.SetItemData( nItem, (DWORD)fileTime.GetTime() );

						nItem++;
					}
				}
			}
		} while (bStop!=TRUE);
	}	


	m_bSortAscending=TRUE;
}
Exemplo n.º 2
0
CUString FormatTrackNameString( CUString strFormat, ENUM_FILENAME_CONVERTS nType ) 
{
	int i;

	switch ( nType )
	{
		case FILENAME_CONVERT_NONE:
			// do noting
		break;
		case FILENAME_CONVERT_LOWER:
			strFormat.MakeLower();
		break;

		case FILENAME_CONVERT_UPPER:
			strFormat.MakeUpper();
		break;

		case FILENAME_CONVERT_FC_UPPER:
			strFormat.MakeLower();
			if ( strFormat.GetLength() > 0 )
			{
				CUString strTmp( strFormat.Left( 1 ) );
				strTmp.MakeUpper();
				strFormat.SetAt( 0, strTmp.GetAt( 0 ) );
			}
		break;
		case FILENAME_CONVERT_FCEW_UPPER:
			strFormat.MakeLower();

			for ( i=0; i < strFormat.GetLength()-1; i++ )
			{
				if ( i == 0 )
				{
					CUString strTmp( strFormat.Mid( 0, 1 ) );
					strTmp.MakeUpper();
					strFormat.SetAt( 0, strTmp.GetAt( 0 ) );
				} else
				{
					if (  ( 0 == _istalnum( strFormat.GetAt( i ) )  ) &&
						  ( _T( '\'' ) != strFormat.GetAt( i ) ) )
					{
						CUString strTmp( strFormat.Mid( i+1, 1 ) );
						strTmp.MakeUpper();
						strFormat.SetAt( i+1, strTmp.GetAt( 0 ) );
					}
				}
			}
		break;
		case FILENAME_CONVERT_SWAP_ARTIST_TRACK:
			i = strFormat.Find( _W( " / " ) );

			if ( i > 0 )
			{
				CUString str1;
				CUString str2;

				str1 = strFormat.Left( i );
				str2 = strFormat.Mid( i + 3 );

				strFormat = str2 + _W( " / " ) + str1;
			}
		break;
		default:
			ASSERT( FALSE );
	}

	return strFormat;
}