brainail's blog

By brainail, 14 years ago, In Russian
Привет, нужно узнать пару функция как их сделать на C++, ну и если не сложно по-подробнее с примерами :o, спасибо!

Что пока что интересует (По мере буду добавлять, спасибо за ответы):
1. Как создать папку где либо, то есть так сказать сделать mkdir?
2. Как вообще перемещаться по папкам, возможно определять все папки что есть в текущей папке. Так сказать строить дерево папок?
3. Как перемещать файл из одного места в другое?
4. Как читать картинку? И вообще как работать с изображениями?
5. Из 4 пункта, как определить размеры файла, то есть высоту и ширину?
6. Какие форматы изображений С++ поддерживает?

Пока всё, спасибо за любые ответы. Особенно хочется что бы это всё делалось как в обычной олимпиадной программе =)

Благодаря MSDN я всё узнал всё что нужно :)
Теперь показываю программу которая рассортировывает картинки внутри папки =)
То есть ложим её в папку с картинками, запускаем, и вот уже созданы специальные папки вида "1280x720", "1600x1200" ... где в каждой такой папке лежат картинки такого разрешения :) Всё написано с помощью си++ и его библиотек =)

#include <string>
#include <atlimage.h>
using namespace std;

CImage image;
WIN32_FIND_DATA ffd;
HANDLE file;
HRESULT readIm;
LPSECURITY_ATTRIBUTES crDir;
char buf[15];

int main() {
 file = FindFirstFile(L"*.*", &ffd);
 do {
  if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
   image.Destroy();
   readIm = image.Load(ffd.cFileName);
   if(readIm == S_OK) {
    sprintf(buf, "%dx%d", image.GetWidth(), image.GetHeight());
    wstring Rdir(buf, buf+strlen(buf));
    CreateDirectory(Rdir.c_str(), crDir);
    MoveFile(ffd.cFileName, (Rdir + L"\\\\" + ffd.cFileName).c_str());
   } else {
    CreateDirectory(L"!Unknown", crDir);
    MoveFile(ffd.cFileName, (wstring(L"!Unknown\\\\") + ffd.cFileName).c_str());
   }
  }
 } while (FindNextFile(file, &ffd) != 0);
}

Скачать саму Exe можно тут!
  • Vote: I like it
  • 0
  • Vote: I do not like it