Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/50: Рейтинг темы: голосов - 50, средняя оценка - 4.98
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1

функцию для удаления файла на жестком диске

17.11.2011, 13:45. Показов 10632. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу подскажите функцию для удаления файла на жестком диске.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2011, 13:45
Ответы с готовыми решениями:

Не освободилось свободное место на жёстком диске после удаления файлов
Вчера решил скинуть танки по частям по скольку памяти на жёстком было всего 7гб, успешно сделал так 2 раза и на 3 после очередного удаления...

Переход в указанную папку на диске для удаления файла
Составить программу, в которой осуществляется переход в указанную преподавателем папку на диске, переименование указанного файла, а затем...

Вирус без файла на старом жестком диске
Есть старый жесткий диск на 809 Мб. Из старого 486-го компьютера (я увлекаюсь ретротехникой). На нём MS-DOS 5.0, файловая система FAT16. Я...

14
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 13:50
Sylar9, boost::filesystem::remove
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
17.11.2011, 13:54  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Sylar9, boost::filesystem::remove
а пример можешь превисти
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.11.2011, 14:01
Цитата Сообщение от Sylar9 Посмотреть сообщение
Прошу подскажите функцию для удаления файла на жестком диске.
- если без буста, то либо
C
1
remove("Путь к файлу"); //нужен stdio.h
либо попробовать
C
1
_rmdir("Путь к файлу");  //нужен direct.h
Добавлено через 2 минуты
Так же во всех более мене продвинутых файловых классах есть метод Remove
К примеру CFile::Remove (http://msdn.microsoft.com/en-u... s.80).aspx)
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
17.11.2011, 14:05  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- если без буста, то либо
C
1
remove("Путь к файлу"); //нужен stdio.h
либо попробовать
C
1
_rmdir("Путь к файлу");  //нужен direct.h
Добавлено через 2 минуты
Так же во всех более мене продвинутых файловых классах есть метод Remove
К примеру CFile::Remove (http://msdn.microsoft.com/en-u... s.80).aspx)
Спасибо. а где эти все функции написаны
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
17.11.2011, 14:10  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- если без буста, то либо
C
1
remove("Путь к файлу"); //нужен stdio.h
либо попробовать
C
1
_rmdir("Путь к файлу");  //нужен direct.h
Добавлено через 2 минуты
Так же во всех более мене продвинутых файловых классах есть метод Remove
К примеру CFile::Remove (http://msdn.microsoft.com/en-u... s.80).aspx)
Слушай я чего я не могу удалять все файле с одни расширениям например *.exe
Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
  
remove("D:\1\*.exe");
cout << "Delete" << endl;
  
 
    return 0;
}
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 14:11
C++
1
2
3
4
5
6
7
8
9
#include <boost/filesystem.hpp>
#include <iostream>
 
//delete file in current dir. name contains in argv[1]
int main(int argc, char* argv[])
{
   namespace fs = boost::filesystem;
   fs::remove(fs::current_path() /= argv[1]);
}
Bash
1
2
3
4
5
6
forever@pterois:~/My_pro1/cpp_pro$ g++ -o file file.cpp -I/usr/include/boost /usr/lib/libboost_system.so.1.46.1 -lboost_filesystem
forever@pterois:~/My_pro1/cpp_pro$ ls
array.txt  file  file.cpp
forever@pterois:~/My_pro1/cpp_pro$ ./file array.txt
forever@pterois:~/My_pro1/cpp_pro$ ls
file  file.cpp
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.11.2011, 14:13
Цитата Сообщение от Sylar9 Посмотреть сообщение
remove("D:\1\*.exe");
- ну дык по маске не выйдет нужно конкретный путь указывать(сначала программа должна "найти файл"), если нужно удаление по маске посмотри мой пост здесь Поиск файла по шаблону
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
17.11.2011, 14:17  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- ну дык по маске не выйдет нужно конкретный путь указывать(сначала программа должна "найти файл"), если нужно удаление по маске посмотри мой пост здесь Поиск файла по шаблону
а проше не как?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.11.2011, 14:25
Цитата Сообщение от Sylar9 Посмотреть сообщение
а проше не как?
- если не знаем путей к удаляемым файлам и нет буста, то скорей всего никак(знаю в ListCtrl есть функция получения списка файлов текущего каталога - но поверте это будет уже не консоль и разобраться Вам ещё сложней будет), в функции

ForEveR,
Цитата Сообщение от ForEveR Посмотреть сообщение
fs::remove(fs::current_path() /= argv[1]);
он получает список файлов в текущей директории fs::current_path() и насколько я понимаю сообщает функции fs::remove что сам экзешник выполняющий удаление трогать не надо (только вот почему argv[1] а не argv[0] ) Но функционал fs::current_path() примерно схож с тем кодом что вам привёл, в бусте многие алгоритмы уже зашиты в функции, без него эти алгоритмы нужно писать самому
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 14:28
-=ЮрА=-, Просто мне лень было забивать в код имя файла решил передавать из консоли.
operator /= в boost::filesystem:ath присоединяет к пути переданную строку, разбираясь сам с форматом соединения взависимости от оси, только и всего.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.11.2011, 14:32
ForEveR, т.е программа должна работать через командную строку, парметром которой будет удаляемая дирректория, а как задаётся маска поиска???
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 14:33
-=ЮрА=-, Не-не. Параметр - имя файла. curdir() возвращает текущую дирректорию.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.11.2011, 14:39
Цитата Сообщение от ForEveR Посмотреть сообщение
Параметр - имя файла.
- т.е только файл удаляем, ясно. Ещё хотел для себя узнать в boost::filesystem::remove можно ли каким то образом вбить маску и передать не путь к файлу а путь к дирректории или это функция единичного файлового удаления???

Не по теме:

PS:Надо наверное пощупать буст, хотя пока и без него обходился но интерес берёт верх)

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2011, 15:12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <boost/filesystem.hpp>
#include <boost/regex.hpp>
#include <iostream>
 
//delete all files with needed extension in current dir. extension contains in argv[1]
int main(int argc, char* argv[])
{
   namespace fs = boost::filesystem;
   boost::regex reg(std::string("\.+.") + argv[1]);
   for (fs::directory_iterator iter = fs::directory_iterator(fs::current_path()); 
        iter != fs::directory_iterator(); ++iter)
   {
      if (boost::regex_match(iter->path().generic_string(), reg))
      {
         fs::remove(iter->path());
      }
   }
}
Пример по маске через regex.

Bash
1
2
3
4
5
6
forever@pterois:~/My_pro1/cpp_pro$ touch some.exe no.exe what.exe else.exe
forever@pterois:~/My_pro1/cpp_pro$ ls
else.exe  file  file.cpp  no.exe  some.exe  what.exe
forever@pterois:~/My_pro1/cpp_pro$ ./file exe
forever@pterois:~/My_pro1/cpp_pro$ ls
file  file.cpp
Добавлено через 4 минуты
-=ЮрА=-, Remove работает только с fs:ath. Еще есть remove_all рекурсивно удаляющая все что можно.

Добавлено через 19 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <boost/filesystem.hpp>
#include <iostream>
 
//delete all files with needed extension in current dir. extension contains in argv[1]
int main(int argc, char* argv[])
{
   namespace fs = boost::filesystem;
   for (fs::directory_iterator iter = fs::directory_iterator(fs::current_path()); 
        iter != fs::directory_iterator(); ++iter)
   {
      if (iter->path().extension() == std::string(".") + argv[1])
      {
         fs::remove(iter->path());
      }
   }
}
В догонку вариант без регекса.

Bash
1
2
3
4
5
6
forever@pterois:~/My_pro1/cpp_pro$ touch some.exe no.exe what.exe else.exe
forever@pterois:~/My_pro1/cpp_pro$ ls
else.exe  file  file.cpp  no.exe  some.exe  what.exe
forever@pterois:~/My_pro1/cpp_pro$ ./file exe
forever@pterois:~/My_pro1/cpp_pro$ ls
file  file.cpp
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2011, 15:12
Помогаю со студенческими работами здесь

Возможно ли получить дескриптор файла по LCN его кластера на жестком диске?
Здравствуйте, возможно ли получить дескриптор файла по LCN его кластера на жестком диске?

Копирование файла с флешки при её подключении к компьютеру в определённую папку на жёстком диске
Ребят, очень срочно требуется набор команд для батника, который будет с флешки при ее вставлении кидать один текстовый файл в определенную...

Требуемое место для игр на жёстком диске
Сколько нужно свободного места на жёстком диске, с горкой(чтобы наверняка), для уже установленной игры, пусть будет по самым последним...

Программа для шифрования данных на жестком диске и флешки
Здравствуйте. Подскажите программу для надёжного шифрования данных, на жестком диске и флешки.

Создание места на жестком диске для монтирования установщика
Здравия народ. Даже не знаю куда конкретно отнести этот вопрос, так что, ув. мд, если решите, что не сюда, просто перенесите куда нужно. ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru