| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 07-05-2005 07:40 »   | 
								
								 | 
							  
							 
							Где почитать про работу с файлами и папками... Мне например надо найти все файлики с расширением .files (папочки где рисунки сохраненных страницек хранятся) и сделать их все невидимыми в той папке где хранится exe-шник проги...  в общем, нужно побольше почитать про это... 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 07-05-2005 08:02 »   | 
								
								 | 
							  
							 
							Читай MSDN. Функции WinAPI FindFirstFile, FindNextFile,  FindClose помогут тебе в поиске файлов и папок. Функции GetFileAttributes, SetFileAttributes помогут тебе в установке атрибутов файла.
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 07-05-2005 08:38 »   | 
								
								 | 
							  
							 
							Спасибо, ато на rsdn'е мне вапче ниче не ответили =)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 20-12-2007 21:12 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 08-05-2005 04:41 »   | 
								
								 | 
							  
							 
							хм...    LPWIN32_FIND_DATAA h;        if (FindFirstFile("fff.files", h) == S_OK )       cout << "ok" << endl;    else       cout << "no" << endl;
  ашыпка.... Извините злобньго ламерюгу.... Но я не знаю как использовать структуру в кач. парамерта ф-ии... Вообще не представляю что это такое =(( "lpFindFileData  [out] Pointer to the WIN32_FIND_DATA structure that receives information about the found file or subdirectory.  "
  Че значт out ? =)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							LP
							
								Помогающий 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 08-05-2005 10:15 »   | 
								
								 | 
							  
							 
							[out] значит что это результат работы функции. А что значит  сделать их все невидимыми в той папке где хранится exe-шник проги Скрытыми что-ли??  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Если эта надпись уменьшается, значит ваш монитор уносят 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 08-05-2005 10:52 »   | 
								
								 | 
							  
							 
							Ага. Скрытыми Не... ну скрытыми то я сделаю сам.... SetAttribute и нашел я константы эти, чтобы скрытыми сделать на allapi.net (иил com - не помню) Мне бы ответ получить на пост, который 4й тут =)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							LP
							
								Помогающий 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 08-05-2005 11:05 »   | 
								
								 | 
							  
							 
							LPWIN32_FIND_DATAA h;       if (FindFirstFile("fff.files", h) == S_OK )//?         cout << "ok" << endl;    else       cout << "no" << endl; FindFirstFile возвращает handle файла в случае успешного завершения, и INVALID_HANDLE_VALUE (т. е. -1) в случае ошибки. Кроме того твой указатель h ни на что не указывает  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Если эта надпись уменьшается, значит ваш монитор уносят 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 08-05-2005 11:36 »   | 
								
								 | 
							  
							 
							А на что он ДОЛЖЕН указвать?  И чтоза тип такой LPWIN32_FIND_DATAA  ? Там вопрос чуть чуть пошире =) Объясните пожалуйста, если не в лом... и я не буду с такими глупыми вопросами больше приставать =))))
  PS Рульз =)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Finch
							
								Спокойный 
								Администратор
								
								 
								  Offline
								Пол:   
								
								Пролетал мимо
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 08-05-2005 12:10 »   | 
								
								 | 
							  
							 
							Вот пример, который привели, когда разбирали тоже самое тут  https://forum.shelek.ru/index.php/topic,4017.30.htmlHANDLE     hFndF=FindFirstFile("c:\\*.*", &FindFile); DWORD     Folder; if (hFndF!=INVALID_HANDLE_VALUE)          {               do    {                 Folder=FindFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;                              if (!Folder) Memo1->Lines->Add(FindFile.cFileName );             }  while (FindNextFile(hFndF,&FindFile)!=0);            FindClose(hFndF);          }
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Не будите спашяго дракона.              Джаффар (Коша)  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 08-05-2005 12:18 »   | 
								
								 | 
							  
							 
							Спасибо. Буду разбираться! =) 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							LP
							
								Помогающий 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 08-05-2005 13:59 »   | 
								
								 | 
							  
							 
							Попробовал написать твою программку, у меня вроде работает, хотя не исключено что где-нибудь что-нибудь напутал    #include <windows.h> #include <conio.h> #include <shlwapi.h> #include <iostream>
  using namespace std;
  void copy_and_hide(LPCTSTR lpPath, LPCTSTR lpFileName);
  int main() {    	TCHAR path[]="d:\\fff.files\\"; 	TCHAR anyfile[]="d:\\fff.files\\*.*"; 	WIN32_FIND_DATA w32fd; 	LPWIN32_FIND_DATA lpw32fd=&w32fd; 	HANDLE h = FindFirstFile(anyfile, lpw32fd); 	if(h==INVALID_HANDLE_VALUE) 	{ 		cout<<"error"; 		return -1; 	} 	if(!(lpw32fd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 		copy_and_hide(path, lpw32fd->cFileName); 	while(FindNextFile(h, lpw32fd)) 	{ 		if(!(lpw32fd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 			copy_and_hide(path, lpw32fd->cFileName); 		 	}
  	FindClose(h); 	getch(); 	return 0; }
  void copy_and_hide(LPCTSTR lpPath, LPCTSTR lpFileName) {
  	TCHAR buffer[MAX_PATH];     GetCurrentDirectory(MAX_PATH, buffer); 	StrCat(buffer, "\\"); 	TCHAR path[MAX_PATH]; 	StrCpy(path, lpPath); 	CopyFile(StrCat(path, lpFileName), StrCat(buffer, lpFileName), FALSE); 	DWORD attr=GetFileAttributes(buffer); 	SetFileAttributes(buffer, attr | FILE_ATTRIBUTE_HIDDEN); 	cout<<buffer<<" is copied"<<endl; 	return; }
 
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 08-05-2005 14:04 от LP »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Если эта надпись уменьшается, значит ваш монитор уносят 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 08-05-2005 14:39 »   | 
								
								 | 
							  
							 
							Ой спасиба! Огромное, просто! Мне очень пригодится... посидеть поразбираться...  Низкий поклон! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 10-05-2005 08:08 »   | 
								
								 | 
							  
							 
							Ага.... все файлы скрывает... =) Я чуть не испугался   ))     TCHAR path[]="C:\\Documents and Settings\\User\\My Documents\\";    TCHAR anyfile[]="C:\\Documents and Settings\\User\\My Documents\\*.files"; Мне нада папки скрыть на конче которых .files там че? Что то другое использовать.... Если вот так в проге заменить path[] и anyfile[] то ниче копироваться и скрываться не будет. Вопрос - почему?   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							LP
							
								Помогающий 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 10-05-2005 17:34 »   | 
								
								 | 
							  
							 
							Ага.... все файлы скрывает... =) Я чуть не испугался   ))     TCHAR path[]="C:\\Documents and Settings\\User\\My Documents\\";    TCHAR anyfile[]="C:\\Documents and Settings\\User\\My Documents\\*.files"; Мне нада папки скрыть на конче которых .files там че? Что то другое использовать.... Если вот так в проге заменить path[] и anyfile[] то ниче копироваться и скрываться не будет. Вопрос - почему?  Если так сделать то будут копироваться только файлы с расширением .files, а не папки. С вопросом как копировать папки (тем более с файлами) тебе придется обратиться к msdn, так как я не знаю такой функции (если она вообще есть   ) Но можно например создать новую, а туда подряд скопировать файлы из исходной папки.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Если эта надпись уменьшается, значит ваш монитор уносят 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 10-05-2005 20:50 »   | 
								
								 | 
							  
							 
							Хммм.... Но у папки то можно аттрибут "Скрытый" выставлять.... Значит можно и программно как-то выставить. Буду копаться    Спасибо тебе за помощь...  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							F1aSh
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									«  Ответ #15 : 11-05-2005 08:46 »    | 
								
								 | 
							  
							 
							FILE_ATTRIBUTE_NORMAL    TCHAR path[]="C:\\Documents and Settings\\User\\My Documents\\";    TCHAR anyfile[]="C:\\Documents and Settings\\User\\My Documents\\*.files"; скрываем все папочки с .files на конце
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |