C++ Builder -> маски при копировании/перемещении

Тема в разделе "WASM.BEGINNERS", создана пользователем BadLogin, 27 апр 2009.

  1. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    Нужно переместить кучу файлов
    Код (Text):
    1. MoveFile
    перемещает по одному, как упростить код, как пользоваться масками (*.*) в билдере ???
     
  2. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    FindFirstFile\FindNextFile
    SHFileOperation
     
  3. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    мне нужно скопировать не всю папку целиком, а а только часть файлов по маске "xxx*.*"
     
  4. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    FindFirstFile\FindNextFile
     
  5. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    выходит пока не очень разобрался с этой конструкцией ...
     
  6. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    Код (Text):
    1.     SHFILEOPSTRUCT shfos = {0};
    2.  
    3.     shfos.hwnd = NULL;
    4.     shfos.wFunc = FO_MOVE;
    5.     shfos.pFrom = "C:\\Program Files\\DrWeb\0\0";
    6.     shfos.pTo = "C:\\Program Files\\DrWeb\\Bases\0\0";
    7.     shfos.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
    8.  
    9.   //  shfos.fAnyOperationsAborted = FALSE;
    10.   //  shfos.hNameMappings = NULL;
    11.     shfos.hwnd = NULL;
    12.  
    13.  
    14.     SHFileOperation (&shfos);
    не копирует вообще ничего =(( да и можно ли здесь задать маску ???
     
  7. BadLogin

    BadLogin Серёга =)

    Публикаций:
    0
    Регистрация:
    9 окт 2008
    Сообщения:
    82
    Адрес:
    Сайнт-Пи
    Всё работает =)))

    Если кому интересно:

    Код (Text):
    1. TSearchRec sr;
    2. if (FindFirst("C:\\Program Files\\DrWeb\\drw444*.vdb", faAnyFile | faDirectory, sr) == 0)
    3. {
    4. CopyFile(AnsiString(("C:\\Program Files\\DrWeb\\")+sr.Name).c_str(),AnsiString(("C:\\Program Files\\DrWeb\\Bases\\")+sr.Name).c_str());
    5. while (FindNext(sr) == 0)
    6. CopyFile(AnsiString(("C:\\Program Files\\DrWeb\\")+sr.Name).c_str(),AnsiString(("C:\\Program Files\\DrWeb\\Bases\\")+sr.Name).c_str());
    7. }
    8. FindClose(sr);