Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Перенос файлов из папки


Автор: VOX 24.6.2009, 10:41
Здравствуйте!
Помогите советом, как осуществить перенос файлов из одной определенной папки в другую определенную папку?
Т.е. есть 10 файлов с неизвестное_мне_имя.jpg  в папке c:/folder1 в папку c:/folder1/Subfolder1.
Спасибо!

Автор: azesmcar 24.6.2009, 10:58
FindFirst, FindNext в папке по фильтру *.jpg и на каждом найденном файле.
Цитата

BOOL MoveFile(
  LPCTSTR lpExistingFileName, 
  LPCTSTR lpNewFileName
); 


Добавлено через 1 минуту и 28 секунд
http://www.decompile.com/cpp/faq/findfirst_findnext.htm
пример на билдере

Автор: VOX 24.6.2009, 11:16
Спасибо!
Код

TSearchRec search_rec;
    try
    {
        int error_code = FindFirst("C:\\pc\\*.txt", faAnyFile, search_rec);
        while ( 0 == error_code )
        {

            error_code = FindNext(search_rec);
        }
    }
    __finally
    {
        FindClose(search_rec);
    }


Так я нахожу файла, а как реализовать их перенос?

Автор: azesmcar 24.6.2009, 11:18
Код

MoveFile(search_rec.Name.c_str(), "c:\\folder1\\Subfolder1\\");

Автор: VOX 24.6.2009, 11:23
о! Спасибо!!!

Автор: azesmcar 24.6.2009, 11:29
VOX

может быть надо будет имя файла указать.
Код

MoveFile(search_rec.Name.c_str(), ("c:\\folder1\\Subfolder1\\" + search_rec.Name).c_str());

тогда так.

Автор: VOX 24.6.2009, 13:05
Увы, но почему то не работает, я по-разному пробывал.
1 раз даже что то копировало, но только 1 файл, а не все.
Несмотря на это, в мемо1 все файлы исправно указываются.
Вот код:

Код

//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{


    try
    {
        int error_code = FindFirst("C:\\folder1\\*.*", faAnyFile, search_rec);
        while ( 0 == error_code )
        {
            Memo1->Lines->Add(search_rec.Name);
            MoveFile(search_rec.Name.c_str(), ("c:\\folder1\\Subfolder1\\" + search_rec.Name).c_str());
            error_code = FindNext(search_rec);
        }
    }
    __finally
    {
        FindClose(search_rec);
    }


}
//---------------------------------------------------------------------------


Автор: azesmcar 24.6.2009, 13:08
VOX

Я не знаю как там, search_rec.Name путь к файлу содержит или только название? Если путь не содержится - добавь путь к файлу заработает.

Автор: VOX 24.6.2009, 13:11
Да, вы совершенно правы!

Код

MoveFile( ("c:\\folder1\\" + search_rec.Name).c_str(), ("c:\\folder1\\Subfolder1\\" + search_rec.Name).c_str());


Еще раз большое спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)