Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24

Анализ имен папок для последующей работы с вложенными в них файлами

26.07.2009, 21:36. Показов 2111. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, требуется помощь!
Задача следующая:
Есть определенная директория. Допустим "d:\my"
В ней есть папки с именами в формате "день_месяц_год".
К примеру: "d:\my\18_02_2010", "d:\my\19_02_2010", "d:\my\22_02_2010" и т.д.
В каждой из них лежит по одному текстовому файлу.
Моей программе необходимо при запуске сверять названия папок с сегодняшней датой, чтобы, в случае совпадения, перенести файл, находящийся в этой папке, в директорию, к примеру: "d:\mymymy".
Высказываем предположения и конкретные предложения))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2009, 21:36
Ответы с готовыми решениями:

Создание структуры папок с вложенными файлами по 1-2 мегабайта
Доброго времени суток! Задача состоит в том, чтобы скрипт создавал дерево папок следующего вида, и также создавал или копировал один файл...

Что использовать для копирования директории вместе со вложенными директориями и файлами?
подскажите что нужно использовать для копирования папки(разумеется всех поддиректорий и файлов в них)?

Макрос для копирования имен папок
помогите написать макрос с помощью которого можно будет скопировать имена папок в Excell приетом указовать адрес папок Надо что бы...

15
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
26.07.2009, 21:41
Проще взять текущую дату. По дате построить имя каталога. Проверить что такой каталог существует. Если существует - выполнить требуемое действие.
1
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.07.2009, 21:45
задача больше скриптовая, решать её на c++ = дополнительный гемор. хотя, если прикрутить Boost.DateTimne + Boost.Filesystem...
0
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
26.07.2009, 21:55  [ТС]
Цитата Сообщение от odip Посмотреть сообщение
Проще взять текущую дату. По дате построить имя каталога. Проверить что такой каталог существует. Если существует - выполнить требуемое действие.
Интересное предложение!
А можно подробнее? Особо интересуют проверка существования каталога и как берется текущая дата для построения имени?

Добавлено через 4 минуты 53 секунды
Цитата Сообщение от Rififi Посмотреть сообщение
задача больше скриптовая, решать её на c++ = дополнительный гемор. хотя, если прикрутить Boost.DateTimne + Boost.Filesystem...
просто им я С++ хоть как то владею. Ну еще на Паскале с Делфи могу че нить сделать))
В принципе можно и другой язык использовать, но...
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
26.07.2009, 21:57
проверка существования каталога
stat()
текущая дата
localtime(), time()

Добавлено через 59 секунд
Осталось еще овладеть F1 и прочитать справочник по функциям
1
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
26.07.2009, 22:08  [ТС]
Цитата Сообщение от odip Посмотреть сообщение
stat()

localtime(), time()

Добавлено через 59 секунд
Осталось еще овладеть F1 и прочитать справочник по функциям
спасибо! будем ознакомляться. Надеюсь все будет просто))
Если будут еще какие мысли по этому поводу - с радостью почитаю
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
26.07.2009, 22:13
Rififi прав - на perl это все пишется за 5 минут
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.07.2009, 22:55
на c# за 10 минут (:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private const string Source = @"D:\му";
private const string Destination = @"D:\му-му";
        
public void CopyToМуму()
{
    if (!Directory.Exists(Destination))
        Directory.CreateDirectory(Destination);
 
    var dateFmt = DateTime.Now.ToString("dd_MM_yyyy");
    var dir = new DirectoryInfo(Path.Combine(Source, dateFmt));
 
    if (dir.Exists)
    {
        var f = dir.GetFiles("*.txt").FirstOrDefault();
        if (f != null)
            f.CopyTo(Path.Combine(Destination, f.Name), true);
    }
}
1
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
27.07.2009, 17:00  [ТС]
Rififi, спасибо большое!!!
А вот эти куски из С++ будет сложно преобразовать в С#?
Ибо я С++ выбрал из за того, что нашел эти куски:

1)КОПИРОВАНИЕ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 #include <fstream.h>
#include <process.h>
#include <conio.h>
int main(int argc, char *argv[])
{
 char ch;
 clrscr();
 if(argc!=3) {
 [b][b][u][i]cerr << "Вызов dcopy файл1 файл2 \n";[/i][/u][/b][/b]
               getch();
   exit(1);
   }
 
   ifstream in(argv[1]);
   if(!in) {
     cerr<< "Vhodnoi File not open. \n"<<argv[1];
     exit (1);
   }
   ofstream dest(argv[2]);
   if(!dest) {
     cerr<< "Vihodnoi File not open2. \n"<<argv[2];
     exit (1);
    }
   while((ch=in.get())!=EOF)
   dest.put(ch);
   in.close();
   dest.close();
   return 0;
   } 
 
2) СРАВНЕНИЕ:
 
  
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
 
int main(int argc, char *argv[])
{
 register int i;
 unsigned char buf1[1024],buf2[1024];
   if (argc!=3) {
   [b][i][u]cout <<"Primenenie: imya_programmi <imya_faila>"
        <<"<imya_faila2>\n";[/u][/i][/b]
   return 1;
 }
 ifstream f1(argv[1], ios::in | ios::binary);
   if(!f1) {
     cerr<< "1 File not open. \n"<<argv[1];
     return 1;
   }
 
   ifstream f2(argv[2], ios::in | ios::binary);
   if(!f2) {
     cerr<< "2 File not open. \n"<<argv[1];
     return 1;
   }
   cout<<"Sravnenie failov...\n";
   do {
     f1.read((char*) buf1,sizeof buf1);
     f2.read((char*) buf2,sizeof buf2);
    if (f1.gcount() != f2.gcount()) {
      cout<<"Faili imeiut raznie razmeri.\n";
      f1.close();
      f2.close();
      return 0;
    }
    //Sravnenie buferov
    for (i=0; i<f1.gcount(); i++)
      if(buf1[i] != buf2[i]) {
      cout<< "Faili razlichni.\n";
      f1.close();
      f2.close();
      return 0;
    }
   } while(!f1.eof() && !f2.eof());
   cout<<"Faili odinakovi.\n";
   f1.close();
   f2.close();
   return 0;
 }
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
27.07.2009, 17:02
2vs.: Используй тег для обозначения кода на C++ !!!
0
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
27.07.2009, 17:11  [ТС]
Спасибо за помощь с тэгом XuTPbIu_MuHTAu, ибо инет тупит - сообщение не смог отредактировать...
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
27.07.2009, 17:18
vs.,
А вот эти куски из С++ будет сложно преобразовать в С#?
на c# код упростится раза в 2.
1
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
27.07.2009, 17:23  [ТС]
Цитата Сообщение от Rififi Посмотреть сообщение
vs.,
А вот эти куски из С++ будет сложно преобразовать в С#?
на c# код упростится раза в 2.
Спасибо за советы большое. Сейчас буду обдумывать целосообразность перехода))
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
27.07.2009, 21:05
Не - C# не нужен. Лучше на C++ пиши.
0
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
28.07.2009, 00:01  [ТС]
Цитата Сообщение от odip Посмотреть сообщение
Не - C# не нужен. Лучше на C++ пиши.
В принципе, я так и поступлю - попробую на C++, возникнут затруднения - может и перейду на C# (хотя тут есть явные сомнения).
Odip, просьба к тебе: распиши поподробнее свой совет в твоем первом посте в этой теме, если тебе не сложно, разумеется. Особо интересует это: "По дате построить имя каталога". То есть сам принцип предложенного тобой метода я понял, но, к сожалению, некоторые затруднения вызывает реализация...
0
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 24
04.08.2009, 09:28  [ТС]
Odip, просьба к тебе: распиши поподробнее свой совет в твоем первом посте в этой теме, если тебе не сложно, разумеется. Особо интересует это: "По дате построить имя каталога". То есть сам принцип предложенного тобой метода я понял, но, к сожалению, некоторые затруднения вызывает реализация...

Добавлено через 1 час 7 минут 46 секунд
в принципе обойдусь без ответа, если какой добрый человек подскажет. Пишу я вот что среди прочего:
C++
1
2
argv[1]="d:\GID\inf_17\q.txt"
cout<<argv[1];;
На экран выводит: [I]d:GIDinf_17q.txt
Как правильно прописать слэши, чтобы у меня был нормальный путь к нужному файлу?

Добавлено через 1 час 3 минуты 44 секунды
с 5ого раза \\ все таки помог...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2009, 09:28
Помогаю со студенческими работами здесь

Не возникает ли коллизия имен, если использовать два пространства имен, и в каждом из них будут одноименные?
Вот например namespace nms1 { int gh; } namespace nms2 { int gh;

Сохранение данных приложения при закрытии для последующей работы с ними
Здравтсвуйте, у меня установлена программа visual Basic 2005, уже есть приложение, когда я его запускаю и добавляю данные, они...

Как в коде программы подключить объект Excel для последующей работы с ним?
Подскажите, как в коде программы подключить объект Excel для последующей работы с ним? Т.е. подключить не через References, а в процессе...

Список имен файлов без имен папок и скрытых файлов
Здравствуйте Я пытаюсь вывести список имен файлов в текущей папке без отображения имен папок и скрытых файлов Использую следующий...

Пространство имен для работы с virtual WiFi
есть ли пространство имен для работы с virtual WiFi?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru