ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Поиск файлов и копирование их C++\Asm
  #1  
Старый 09.10.2009, 08:12
TheThief
Новичок
Регистрация: 08.10.2009
Сообщений: 5
Провел на форуме:
5114

Репутация: 0
Question Поиск файлов и копирование их C++\Asm

в общем я ламерюга пока что=) в C++ 2 дня
мне надо чтобы был поиск *.txt файлов в C:\123\ и копирование этих найденных файлов в D:\123\
кто может напишите скрипт этого буду очень благодарен))
заранее спасибо)
собираюсь asm изучать дак вот если у кого есть на asm то что я прошу на c++ то выкладывайте)

ах да и еще желательно разжевать все =)

Последний раз редактировалось TheThief; 09.10.2009 в 08:24..
 
Ответить с цитированием

  #2  
Старый 09.10.2009, 08:38
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Цитата:
кто может напишите скрипт
Избався от слова СКРИПТ или учи PHP|Perl и т.д.

Код:
SHFILEOPSTRUCT s;

    s.wFunc = FO_COPY;
    s.pFrom = "c:\\123\\*.txt\0";
    s.pTo = "d:\\123";

    SHFileOperation(&s);
 
Ответить с цитированием

  #3  
Старый 09.10.2009, 09:16
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

а я садист и у меня кода меньше ))) :-P

system("@for %1 in (\"C:\\123\\*.txt\") do @copy \"%1\" \"D:\\123\\\">>nul");
 
Ответить с цитированием

  #4  
Старый 09.10.2009, 11:34
TheThief
Новичок
Регистрация: 08.10.2009
Сообщений: 5
Провел на форуме:
5114

Репутация: 0
По умолчанию

а если надо искать на всех жестких дисках? эт сработает?=) мне ведь надо не просто копировать из 123\*.txt а чтобы копировались из 123\1 и 123\2 123\3 и т.д. ушел пробовать)
 
Ответить с цитированием

  #5  
Старый 09.10.2009, 11:46
TheThief
Новичок
Регистрация: 08.10.2009
Сообщений: 5
Провел на форуме:
5114

Репутация: 0
По умолчанию

slesh, работает но то что в папке C:\123\123 не копирует) и еще там запускается черное окошко это чо cmd чтоли? бред;d батч ... >_<

Последний раз редактировалось TheThief; 09.10.2009 в 11:50..
 
Ответить с цитированием

  #6  
Старый 09.10.2009, 11:55
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

ну тогда юзай апинки FindFirstFile FindNextFile и если попадается каталог то рекурсивно запускай данную функцию
 
Ответить с цитированием

  #7  
Старый 09.10.2009, 12:31
TheThief
Новичок
Регистрация: 08.10.2009
Сообщений: 5
Провел на форуме:
5114

Репутация: 0
По умолчанию

The Thief
Цитата:
ах да и еще желательно разжевать все =)
поподробней насчет FindFirstFile FindNextFile
 
Ответить с цитированием

  #8  
Старый 09.10.2009, 12:48
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

PHP код:
#include <windows.h>
#include <tchar.h> 
#include <stdio.h>
#include <strsafe.h>

void DisplayErrorBox(LPTSTR lpszFunction);

int _tmain(int argcTCHAR *argv[])
{
   
WIN32_FIND_DATA ffd;
   
LARGE_INTEGER filesize;
   
TCHAR szDir[MAX_PATH];
   
size_t length_of_arg;
   
HANDLE hFind INVALID_HANDLE_VALUE;
   
DWORD dwError=0;
   
   
// If the directory is not specified as a command-line argument,
   // print usage.

   
if(argc != 2)
   {
      
_tprintf(TEXT("\nUsage: %s <directory name>\n"), argv[0]);
      return (-
1);
   }

   
// Check that the input path plus 3 is not longer than MAX_PATH.
   // Three characters are for the "\*" plus NULL appended below.

   
StringCchLength(argv[1], MAX_PATH, &length_of_arg);

   if (
length_of_arg > (MAX_PATH 3))
   {
      
_tprintf(TEXT("\nDirectory path is too long.\n"));
      return (-
1);
   }

   
_tprintf(TEXT("\nTarget directory is %s\n\n"), argv[1]);

   
// Prepare string for use with FindFile functions.  First, copy the
   // string to a buffer, then append '\*' to the directory name.

   
StringCchCopy(szDirMAX_PATHargv[1]);
   
StringCchCat(szDirMAX_PATHTEXT("\\*"));

   
// Find the first file in the directory.

   
hFind FindFirstFile(szDir, &ffd);

   if (
INVALID_HANDLE_VALUE == hFind
   {
      
DisplayErrorBox(TEXT("FindFirstFile"));
      return 
dwError;
   } 
   
   
// List all the files in the directory with some info about them.

   
do
   {
      if (
ffd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY)
      {
         
_tprintf(TEXT("  %s   <DIR>\n"), ffd.cFileName);
      }
      else
      {
         
filesize.LowPart ffd.nFileSizeLow;
         
filesize.HighPart ffd.nFileSizeHigh;
         
_tprintf(TEXT("  %s   %ld bytes\n"), ffd.cFileNamefilesize.QuadPart);
      }
   }
   while (
FindNextFile(hFind, &ffd) != 0);
 
   
dwError GetLastError();
   if (
dwError != ERROR_NO_MORE_FILES
   {
      
DisplayErrorBox(TEXT("FindFirstFile"));
   }

   
FindClose(hFind);
   return 
dwError;
}


void DisplayErrorBox(LPTSTR lpszFunction

    
// Retrieve the system error message for the last-error code

    
LPVOID lpMsgBuf;
    
LPVOID lpDisplayBuf;
    
DWORD dw GetLastError(); 

    
FormatMessage(
        
FORMAT_MESSAGE_ALLOCATE_BUFFER 
        
FORMAT_MESSAGE_FROM_SYSTEM |
        
FORMAT_MESSAGE_IGNORE_INSERTS,
        
NULL,
        
dw,
        
MAKELANGID(LANG_NEUTRALSUBLANG_DEFAULT),
        (
LPTSTR) &lpMsgBuf,
        
0NULL );

    
// Display the error message and clean up

    
lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT
        (
lstrlen((LPCTSTR)lpMsgBuf)+lstrlen((LPCTSTR)lpszFunction)+40)*sizeof(TCHAR)); 
    
StringCchPrintf((LPTSTR)lpDisplayBuf
        
LocalSize(lpDisplayBuf) / sizeof(TCHAR),
        
TEXT("%s failed with error %d: %s"), 
        
lpszFunctiondwlpMsgBuf); 
    
MessageBox(NULL, (LPCTSTR)lpDisplayBufTEXT("Error"), MB_OK); 

    
LocalFree(lpMsgBuf);
    
LocalFree(lpDisplayBuf);

Пример с мсдн
1. Ищеш первый попавшийся файл\дирректорию
hFind = FindFirstFile(szDir, &ffd);
2. Проверяеш Что это
ffd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY дирректория или нет
3. Если нет то проверяеш удовлетворяет ли он условиям поиска
4. Далее если удовлетворяет то делаеш с ним че тебе надо
5. Далее вызываеш
while (FindNextFile(hFind, &ffd) != 0)
Тут так же как и выше проверяеш что это и условия поиска.
6. Если же это дирректория то вызываеш все это дело еще раз только с имянем той дирректории которую ты нашел.

Тут на форуме где то было. Кто то писал на С++ прогу которая тырит историю QIP там метод поиска такого какого тебе надо в подробностях.

Последний раз редактировалось St0nX; 09.10.2009 в 13:26..
 
Ответить с цитированием

  #9  
Старый 10.10.2009, 12:24
TheThief
Новичок
Регистрация: 08.10.2009
Сообщений: 5
Провел на форуме:
5114

Репутация: 0
По умолчанию

тут была шутка если чо;D

Последний раз редактировалось TheThief; 11.10.2009 в 10:32..
 
Ответить с цитированием

  #10  
Старый 10.10.2009, 12:59
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

в бан бы тебя
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Paros - инструмент для исследования веб-приложений Kuzya Авторские статьи 2 10.04.2009 17:37
Файлчекер (FileChecker) скрипт мониторинга файлов сайта TreV@N PHP, PERL, MySQL, JavaScript 6 07.02.2009 05:05
Линукс для чайников Dracula4ever Soft - *nix 11 24.01.2007 10:49
Пароль в CPanel ufo44 Уязвимости 11 07.12.2006 00:33
чтиво для новичков genom-- *nix 5 20.10.2006 19:17



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ