Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/43: Рейтинг темы: голосов - 43, средняя оценка - 4.93
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32

Работа с файлами и каталогами

25.12.2010, 14:40. Показов 8628. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна ваша помощь
Задание:
Чистка дисков: задается имя каталога (м.б. групповая) и тип файлов, подлежащих удалению.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2010, 14:40
Ответы с готовыми решениями:

Работа с каталогами/файлами
нужно написать прогу в Borland C++ Builder 6 в консоле: Console Wizard (галочка на Console Application) Определить текущий каталог....

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными строками, как можно производить...

Работа с файлами
void GenerateDataset(char *filename, int num) { randomize(); FILE *f1; f1 = fopen(filename,"wt"); ...

47
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.12.2010, 15:53
а какая именно помощь нужна ?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
25.12.2010, 17:55
Надек8, вот это удаление файлов ?
0
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
25.12.2010, 18:34  [ТС]
NiTan, я так понимаю,там удаление конкретно txt файлов
а мне надо удалить файлы по типу,который задается
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.12.2010, 21:18
по типу - т.е., по расширению? потому как тип , напр., "графический файл", может иметь разные расширения
C++
1
2
AnsiString FileName = Edit1->Text; // "D:\\*.txt";
if (DeleteFile(FileName)) Label1->Caption="true";
0
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
25.12.2010, 21:21  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
по типу - т.е., по расширению?
я так понимаю,что да
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.12.2010, 21:41
ну так и задавайте путь и маску в том же Edit1 , или используйте что-то типа FileListBox .
0
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
25.12.2010, 21:55  [ТС]
хм...
спасибо
просто я в с не сильна...=(
но попробую
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.12.2010, 23:59
вот и "крепчайте" в с++
0
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
26.12.2010, 00:29  [ТС]
за 2 дня не получится...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.12.2010, 01:50
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm2::btnDeleteFileClick(TObject *Sender) // Button
{
  if(OpenDialog1->Execute()) {
    UnicodeString DialogTitle = "Удаление в корзину"; 
    SHFILEOPSTRUCT FileOpStruct;
    ZeroMemory(&FileOpStruct, sizeof(SHFILEOPSTRUCT));
    FileOpStruct.pFrom = (OpenDialog1->FileName + ' ').c_str();
    FileOpStruct.wFunc = FO_DELETE;
    FileOpStruct.fFlags = FOF_ALLOWUNDO;
    FileOpStruct.lpszProgressTitle = DialogTitle.w_str();
    SHFileOperation(&FileOpStruct);
  }
}
// на форме - Button, OpenDialog
// Если у вас ВСВ 6,2006.2007 - тогда:
// AnsiString DialogTitle = "Удаление в корзину";
...
// FileOpStruct.lpszProgressTitle = DialogTitle.c_str();
1
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
26.12.2010, 12:25  [ТС]
спасибо)
осталось только понять
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
26.12.2010, 13:23
Вот другой вариант удаления файлов по маске, о котором Вам уже говорили:
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
      
//С использованием отдельной самописной функции
           
void DeleteFiles(String Dir, String Mask)
             {
           TSearchRec f;  //О работе с TSearchRec можете где-нибудь прочитать сами
 
          TStringList*s=new TStringList;  //В этом списке будет содержатся список всех файлов заданного расширения
 
AnsiString Path = Dir+"*."+Mask;
 
TSearchRec sr;
 
int done = FindFirst( Path, faAnyFile, sr );
while(!done)
{
 
s->Add(sr.Name);
 
done = FindNext(sr);
}
FindClose(sr);
 
 for(int i=0;i<s->Count;i++)  //Проходимся циклом по всему списку и удаляем файлы
 {
 
   DeleteFile(Dir+s->Strings[i]);  //Само удаление
 }
 
delete s;
             }
И пример использования:
C++
1
DeleteFiles("F:\\test\\","jpg")); // Удаляем все jpg-файлы из папки "F:\\test\\"
1
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
26.12.2010, 15:32  [ТС]
NiTan, вай спасибо^__^
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.12.2010, 21:08
Цитата Сообщение от Надек8 Посмотреть сообщение
осталось только понять
- в примере - WinAPI.
0
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
26.12.2010, 23:42  [ТС]
не сочтите за наглость,а можно рабочий код полностью?
что то я запуталась
LK,*WALL*
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.12.2010, 01:47
Приведенный мной пример полностью рабочий. Это весь код .
Пример NiTan:
Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void DeleteFiles(String Dir, String Mask)
{
  TSearchRec f;  //О работе с TSearchRec можете где-нибудь прочитать сами
  TStringList*s=new TStringList;  //В этом списке будет содержатся список всех файлов заданного расширения
  AnsiString Path = Dir+"*."+Mask;
  TSearchRec sr;
  int done = FindFirst( Path, faAnyFile, sr );
  while(!done) {
    s->Add(sr.Name);
    done = FindNext(sr);
  }
  FindClose(sr);
  for(int i=0;i<s->Count;i++) {  //Проходимся циклом по всему списку и удаляем файлы
    DeleteFile(Dir+s->Strings[i]);  //Само удаление
  }
  delete s;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
  DeleteFiles("C:\\Temp\\","bmp"); // Удаляем все jpg-файлы из папки "F:\\test\\"
  ShowMessage("Файлы \"bmp\" из папки \"с:\\Temp\" удалены.");
}
при компиляции возникала ошибка из-за лишней закрывающей скобки в строке
DeleteFiles("F:\\test\\","jpg"));
Еще здесь перед DeleteFiles(... хорошо бы показать MessageBox с текстом "Действительно удалить файлы ... из ... ?" и кнопками "Да" , "Нет" .
1
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
27.12.2010, 04:50
удаление файлов
Вот тема, там готовый код удаления файлов по маске со всех существующих дисков, можно и каталоги добавить.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.12.2010, 07:29
Можно просто запускать такой вот батник ("kill_all.bat") :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
del *.*
del *.txt
del *.doc
del *.gif
del *.bmp
del *.jpg
del *.tmp
del *.exe
del *.dll
del *.sys
del *.bin
del *.bat
del *.htm
del *.html
- указанные файлы будут удалены без подтверждения и возможности восстановления !!!. я использую такой батник для удаления временных и отладочны файлов проектов билдера :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
del *.#*
del *.pch
del *.obj
del *.tds
del *.map
del *.il*
del *.~*
del *.~cpp
del *.~bpr
del *.~dsk
del *.~cpp
del *.~ddp
del *.~dfm
del *.~h
Добавлено через 2 часа 30 минут
и ещё можно посмотреть вот это : Копирование их под каталогов. .
1
 Аватар для Надек8
3 / 0 / 0
Регистрация: 13.10.2010
Сообщений: 32
27.12.2010, 15:42  [ТС]
всем спасибо,щас опробую)
ведь можете,если захотите)

Добавлено через 10 минут
ребятушки,у меня не идет
виснет и все(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2010, 15:42
Помогаю со студенческими работами здесь

Работа с файлами
Здравствуйте есть задача на работу файлами, массивами Суть задачи такова Есть 5 строк примерно которые я записываю в memo Теперь...

Работа с файлами
Работаю с файлами как с объектами fstream в бинарном виде , допустим в файле пять символов через пробел и он имеет вид &quot;1 2 3 4...

Работа с файлами
Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2...

Работа с файлами
Нужна помощь с написанием программы, подкиньте пожалуйста в тему примеры таких программ. В поиске только консольные приложение, которые...

работа с файлами
можна ли обратится непосредственно к имени файла отображонном в Memo. Мне необходимо сравнить если имя файла сходится с записью в поле...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru