⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdburndlg.cpp

📁 使用Windows IMAPI编写的光盘刻录程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				{
					Counter++;
				}
				Counter = Counter - 1;
				
                hFind = FindFirstFile(AddedList[count+1],&FindFile);
				while(!AddedList[count].IsEmpty()&&(strcmp(AddedList[count],IndexPath)!=0||strcmp(FindFile.cFileName,Name)!=0))
				{
					count = count + 2;
					hFind = FindFirstFile(AddedList[count+1],&FindFile);
				}
				if(AddedList[count].IsEmpty())
				{
					ListPath[Counter] = ListPath[Counter] + "\\" + Name;
				}
				else
				{
					Counter = Counter + 1;
					ListPath[Counter] = AddedList[count+1];
				}
				IndexPath = IndexPath + "\\" + Name;	
				count = 0;
			}

            Counter = 0;
			while(!ListPath[Counter].IsEmpty())
			{
				Counter++;
			}
			Counter--;
			AddedItemsList.DeleteAllItems();
			hFind = FindFirstFile(ListPath[Counter] + "\\*.*",&FindFile);
			if(hFind != INVALID_HANDLE_VALUE)
			{	
				bLoop = TRUE;
				while(bLoop) 
				{					
					BOOL bDelFlag = TRUE;
					CString TempString = ListPath[Counter] + "\\" +FindFile.cFileName;
					while(!DeleteList[count].IsEmpty()&&strcmp(TempString,DeleteList[count]) != 0)
					{
						count++;
					}
					if(!DeleteList[count].IsEmpty())
					{
						bDelFlag = FALSE;
					}						
					if((FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0&&bDelFlag)
					{
						FileSize = FolderSize(ListPath[Counter] + "\\" + FindFile.cFileName,IndexPath);
						FileSize = FileSize/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");  						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"Folder");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);
					}
					if((!(FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0&&bDelFlag)
					{
						FileSize = (FindFile.nFileSizeHigh*MAXDWORD + FindFile.nFileSizeLow)/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");
						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"File");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);					
					}
					count = 0;
					bLoop = FindNextFile(hFind,&FindFile);
				}
			}	

			while(!AddedList[count].IsEmpty())
			{
				if(strcmp(AddedList[count],IndexPath)==0)
				{
					hFind = FindFirstFile(AddedList[count+1],&FindFile);
					if((FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0)
					{
						FileSize = FolderSize(AddedList[count+1],IndexPath);
						FileSize = FileSize/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");  
						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"Folder");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);
					}
					if((!(FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0)
					{
						FileSize = (FindFile.nFileSizeHigh*MAXDWORD + FindFile.nFileSizeLow)/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");
						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"File");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);					
					}
				}
				count = count + 2;
			}
			OpenIndex++;
		}	
	}
}

void CCDBurnDlg::OnBnClickedUplevel()
{
	WIN32_FIND_DATA FindFile;
	HANDLE hFind = NULL;
	CString sTotalSize;
	CString sFileSize;
	CString sFileTime;
	FILETIME FileTime;
	BOOL bLoop;
	ULONGLONG FileSize = 0;
	UINT nItem = 0;
	UINT Counter = 0;

	if(!IndexPath.IsEmpty()&&OpenIndex>0)
	{
		AddedItemsList.DeleteAllItems();
		if(OpenIndex==1)
		{
			while(!FolderList[Counter].IsEmpty())
			{
				IndexPath.Empty();
				hFind = FindFirstFile(FolderList[Counter],&FindFile);
				FileSize = FolderSize(FolderList[Counter],IndexPath);
				FileSize = FileSize/1024 + 1;
				sFileSize.Format("%d",FileSize);
				FileTime = FindFile.ftLastWriteTime;
				CTime t(FindFile.ftLastWriteTime,0);
				sFileTime = t.Format("%Y-%m-%d %H:%M");				
				nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
				AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
				AddedItemsList.SetItemText(nItem,1,"Folder");
				AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
				AddedItemsList.SetItemText(nItem,3,sFileTime);	
				Counter++;
			}			
			Counter = 0;
			while(!FileList[Counter].IsEmpty())
			{
				hFind = FindFirstFile(FileList[Counter],&FindFile);
				FileSize = (FindFile.nFileSizeHigh*MAXDWORD + FindFile.nFileSizeLow)/1024 + 1;
				sFileSize.Format("%d",FileSize);
				FileTime = FindFile.ftLastWriteTime;
				CTime t(FindFile.ftLastWriteTime,0);
				sFileTime = t.Format("%Y-%m-%d %H:%M");				
				nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
				AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
				AddedItemsList.SetItemText(nItem,1,"File");
				AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
				AddedItemsList.SetItemText(nItem,3,sFileTime);
				Counter++;
			}
			Counter = 0;
			
		}
		else
		{ 
			UINT count = 1;
			CString Name;
			BOOL bDelFlag;
			CString TempString;
			while(IndexPath.GetAt(IndexPath.GetLength()-count)!= '\\')
			{
				count ++;
			}
			Name = IndexPath.Right(count-1);
			IndexPath = IndexPath.Left(IndexPath.GetLength()-count);
            while(!ListPath[Counter].IsEmpty())
			{
				Counter++;
			}
			Counter = Counter - 1;		
			ListPath[Counter] = ListPath[Counter].Left(ListPath[Counter].GetLength()-count);
			count = 0;
			while(!AddedList[count].IsEmpty())
			{
				hFind = FindFirstFile(AddedList[count+1],&FindFile);
				if(strcmp(AddedList[count],IndexPath)==0&&strcmp(Name,FindFile.cFileName)==0)
				{
					ListPath[Counter].Empty();
					Counter--;					
				}
				count = count + 2;
			}
			count = 0;

			hFind = FindFirstFile(ListPath[Counter] + "\\*.*",&FindFile);
			if(hFind != INVALID_HANDLE_VALUE)
			{	
				bLoop = TRUE;
				while(bLoop) 
				{
					bDelFlag = TRUE;
					TempString = ListPath[Counter] + "\\" +FindFile.cFileName;
					while(!DeleteList[count].IsEmpty())
					{
						if(strcmp(DeleteList[count],IndexPath)==0&&strcmp(TempString,DeleteList[count+1])==0)
						{
							bDelFlag = FALSE;
						}
						count = count + 2;	
					}	
					count = 0;
					if((FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0&&bDelFlag)
					{
						FileSize = FolderSize(ListPath[Counter] + "\\" + FindFile.cFileName,IndexPath);
						FileSize = FileSize/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M"); 					
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"Folder");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);
					}
					if((!(FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0&&bDelFlag)
					{
						FileSize = (FindFile.nFileSizeHigh*MAXDWORD + FindFile.nFileSizeLow)/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"File");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);					
					}
					bLoop = FindNextFile(hFind,&FindFile);
				}
			}
			while(!AddedList[count].IsEmpty())
			{
				if(strcmp(AddedList[count],IndexPath)==0)
				{
					hFind = FindFirstFile(AddedList[count+1],&FindFile);
					if((FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0)
					{
						FileSize = FolderSize(AddedList[count+1],IndexPath);
						FileSize = FileSize/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M"); 						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"Folder");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);
					}
					if((!(FindFile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))&&strcmp(FindFile.cFileName,".") != 0&&strcmp(FindFile.cFileName,"..") != 0)
					{
						FileSize = (FindFile.nFileSizeHigh*MAXDWORD + FindFile.nFileSizeLow)/1024 + 1;
						sFileSize.Format("%d",FileSize);
						FileTime = FindFile.ftLastWriteTime;
						CTime t(FindFile.ftLastWriteTime,0);
						sFileTime = t.Format("%Y-%m-%d %H:%M");						
						nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
						AddedItemsList.SetItemText(nItem,1,"File");
						AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
						AddedItemsList.SetItemText(nItem,3,sFileTime);					
					}
				}
				count = count + 2;
			}
		}
		OpenIndex--;
	}
}	

void CCDBurnDlg::FirstPath(void)
{
	WIN32_FIND_DATA FindFile;
	HANDLE hFind = NULL;
	ULONGLONG FileSize = 0;
	FILETIME FileTime;
	CString sTotalSize;
	CString sFileSize;
	CString sFileTime;
	int Counter = 0;
    int nItem = 0;
	FILE* fp;
	CString Path;
	char Directory[64];

	if((fp = fopen("C:\\InitialPath.dat","r")) == NULL)
	{
		MessageBox("Initialize Directory Failed !");
	}
	else
	{
		fscanf(fp,"%s",Directory);
		fclose(fp);
		Path = Directory;
		hFind = FindFirstFile(Path,&FindFile);
		if(hFind == INVALID_HANDLE_VALUE)
		{
			MessageBox("Initialized Directory Invalid !");
		}
		else
		{
			FolderList[Counter] = Path;
			FileSize = FolderSize(FolderList[Counter],IndexPath);
			FilesSize = FilesSize + FileSize;
			FileSize = FileSize/1024 + 1;
			sFileSize.Format("%d",FileSize);
			FileTime = FindFile.ftLastWriteTime;
			CTime t(FindFile.ftLastWriteTime,0);
			sFileTime = t.Format("%Y-%m-%d %H:%M");	
			nItem = AddedItemsList.InsertItem(0,FindFile.cFileName);
			AddedItemsList.SetItemText(nItem,0,FindFile.cFileName);
			AddedItemsList.SetItemText(nItem,1,"Folder");
			AddedItemsList.SetItemText(nItem,2,sFileSize + "  KB");
			AddedItemsList.SetItemText(nItem,3,sFileTime);	
			TotalSize = (FilesSize+0.01)/1024/1024;
			sTotalSize.Format("%4.2f%s",TotalSize," MB");
			SetDlgItemText(IDC_TOTALSIZE,sTotalSize);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -