Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 4.00
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
#1

Удаление файлов: типы и способы - C++

14.07.2015, 11:07. Просмотров 466. Ответов 13
Метки нет (Все метки)

Здравствуйте.
Подозреваю что существует несколько методов удаления файлов. Удаление без изменения области памяти в которой хранилось что то (до записи нового файла на это место) и удаление с перезаписью.
Подскажите так ли это? Существуют только такие методы удаления? Что из себя представляет удаление без перезаписи (какие именно действия производит ОС?)? Существуют ли API для "полного удаления" ? Как реализуется на уровне программиста?

Посоветуйте литературу по этому поводу.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2015, 11:07     Удаление файлов: типы и способы
Посмотрите здесь:
Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов... C++
C++ Типы файлов для сохранения текста
C++ Какие способы самые удобные/рациональные способы регистрации ошибок есть?
Какие спобосы и типы файлов бывают для подключения дополнительных компонентов? C++ Builder
Удаление файлов C++
C++ Builder удаление файлов
C++ Удаление файлов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
14.07.2015, 12:00     Удаление файлов: типы и способы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Подозреваю что существует несколько методов удаления файлов.
И да, и нет. Операционная система предоставляет только один, самый простейший способ. Для остального надо проделывать вещи, предназначенные по сути для других целей. Например, просто перезаписать содержимое файла перед удалением.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Что из себя представляет удаление без перезаписи (какие именно действия производит ОС?)?
Если с упрощениями, то директория (папка) представляет из себя список записей о содержащихся в ней файлах. ОС помечает соответствующую запись как удалённую.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Существуют ли API для "полного удаления" ?
Нет, но существуют API для других вещей - записи в файл или дефрагментации.

Цитата Сообщение от VoltDeMar Посмотреть сообщение
Посоветуйте литературу по этому поводу.
Windows Internals за авторством Марка Руссиновича.
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
14.07.2015, 12:40  [ТС]     Удаление файлов: типы и способы #3
Т.е. удаление как таковое не существует ? Память всегда содержит какие то значения?
Если так возможно ли восстановить исходные значения после перезаписи?

Добавлено через 2 минуты
Цитата Сообщение от Nick Alte Посмотреть сообщение
Windows Internals за авторством Марка Руссиновича.
Книга про Windows ? Хотелось что нибудь обобщающее с примерами для всех ОС и максимально емкое?
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
14.07.2015, 15:11     Удаление файлов: типы и способы #4
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Т.е. удаление как таковое не существует ? Память всегда содержит какие то значения?
Вопрос в том, какие это значения. Если там, где были реальные данные, теперь сплошь нули, что от них толку?
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Если так возможно ли восстановить исходные значения после перезаписи?
Если не считать легенд о каких-то чудесных технологиях спецслужб (здесь должна быть картинка про CSI), то нет. Если в чашке был сначала налит чай, а теперь там кофе, то чай из этой чашки уже не достанешь.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Хотелось что нибудь обобщающее с примерами для всех ОС и максимально емкое?
Вот это вряд ли, потому что работа с файлами на низком уровне относится как раз к специфике операционных систем. Для каждой операционной системы (даже хуже: для каждой файловой системы) всё по-разному. Так что и изучать придётся по отдельности. Ну если не считать простейших, но вполне действенных приёмов вроде перезаписи содержимого файла.
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
15.07.2015, 08:53  [ТС]     Удаление файлов: типы и способы #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Если не считать легенд о каких-то чудесных технологиях спецслужб (здесь должна быть картинка про CSI), то нет. Если в чашке был сначала налит чай, а теперь там кофе, то чай из этой чашки уже не достанешь.
При наличии определенных технологий частицы чая можно соскаблить со стенок определить состав и размножить =)

Цитата Сообщение от Nick Alte Посмотреть сообщение
Вот это вряд ли, потому что работа с файлами на низком уровне относится как раз к специфике операционных систем. Для каждой операционной системы (даже хуже: для каждой файловой системы) всё по-разному. Так что и изучать придётся по отдельности. Ну если не считать простейших, но вполне действенных приёмов вроде перезаписи содержимого файла.
Думаю среди разработчиков кросплатформеров должны быть авторы статей и книг.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
15.07.2015, 09:28     Удаление файлов: типы и способы #6
Цитата Сообщение от VoltDeMar Посмотреть сообщение
При наличии определенных технологий частицы чая можно соскаблить со стенок определить состав и размножить =)
Но выпить тот чай, который там был, уже всё равно не получится. Если бы старую информацию можно было бы так вот взять и извлечь из-под новой, этим бы пользовались вовсю и у нас были бы вдвое более ёмкие винчестеры за те же деньги.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Думаю среди разработчиков кросплатформеров должны быть авторы статей и книг.
Эта задача кроссплатформенной не является. Разные файловые системы устроены по-разному, для доступа к диску в разных ОС используются совершенно разные API и обобщать в настолько низкоуровневой задаче попросту нечего. Она полностью платформенно-специфична. Более того, даже при работе с одной и той же ОС и одной и той же файловой системой, но с разными носителями могут быть весьма специфические нюансы (вспомним про flash-носители, SSD и их систему равномерного износа, где перезапись файла будет заполнять не те участки носителя, где располагалось предыдущее содержимое).
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
15.07.2015, 14:25  [ТС]     Удаление файлов: типы и способы #7
Цитата Сообщение от Nick Alte Посмотреть сообщение
Эта задача кроссплатформенной не является. Разные файловые системы устроены по-разному, для доступа к диску в разных ОС используются совершенно разные API и обобщать в настолько низкоуровневой задаче попросту нечего. Она полностью платформенно-специфична. Более того, даже при работе с одной и той же ОС и одной и той же файловой системой, но с разными носителями могут быть весьма специфические нюансы (вспомним про flash-носители, SSD и их систему равномерного износа, где перезапись файла будет заполнять не те участки носителя, где располагалось предыдущее содержимое).
Т.е. при определенном уровне знаний просто можно придумать свою файловую систему? Взаимодействие с жестким диском полностью контролируется на уровне ОС, или на аппаратном уровне есть какие то преобразования? При записи через WinAPI используются идентификаторы ОС? а существуют ли идентификаторы в самом жестком диске и есть ли к ним доступ?
gng
631 / 477 / 130
Регистрация: 08.09.2013
Сообщений: 1,262
15.07.2015, 15:30     Удаление файлов: типы и способы #8
Цитата Сообщение от VoltDeMar Посмотреть сообщение
придумать свою файловую систему?
Можно, но уже существуют ФС, которые при удалении перезаписывают данные нулями. Самая распространенная - xfs.
Есть ещё утилиты безопасного удаления: shred, wipe, srm.
Насчет Венды не знаю, но, наверное, есть что-то подобное
Почтальон
Модератор
343 / 265 / 46
Регистрация: 22.03.2015
Сообщений: 2,045
Завершенные тесты: 1
15.07.2015, 16:02     Удаление файлов: типы и способы #9
ТС, возьмите любой вузовский учебник по архитектуре ОС, там основные моменты расписаны. На самом деле при удалении файла - удаляется только его адрес из адресного пространства, по крайней мере у винды было так. Т.о. если новые данные не попали на новые адреса, то из можно восстановить
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
15.07.2015, 17:07     Удаление файлов: типы и способы #10
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Т.е. при определенном уровне знаний просто можно придумать свою файловую систему?
Можно, и если держать её внутри файла (виртуальная файловая система), то уровень этот весьма доступен. Такая задача нередко попадается в вузовских лабораторных и курсовых работах по программированию, насколько мне известно.
Вот только зачем всякие ухищрения и сложности с разными ОС, ФС и хардваре, если, согласно товарищу Альтшуллеру, лучше всего сделать заранее? К примеру, файл можно сразу держать зашифрованным, а если он не больше не нужен, достаточно забыть ключ. И вот это, заметим, как раз очень даже кроссплатформенно.
Почтальон
Модератор
343 / 265 / 46
Регистрация: 22.03.2015
Сообщений: 2,045
Завершенные тесты: 1
15.07.2015, 21:32     Удаление файлов: типы и способы #11
Цитата Сообщение от Nick Alte Посмотреть сообщение
К примеру, файл можно сразу держать зашифрованным, а если он не больше не нужен, достаточно забыть ключ. И вот это, заметим, как раз очень даже кроссплатформенно.
Немного дополню, с вашего позволения. Такой подход конечно хороший, для шпионов, но для простого юзверя намного проще "откатить" систему и восстановить "удаленные" файлы
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
15.07.2015, 21:39     Удаление файлов: типы и способы #12
Почтальон, не совсем понял смысл этого наполненного весёлыми лицами комментария.
Даже если у "простого юзверя" по какой-то непонятной причине включена система версионирования защищённых файлов (которая, на минуточку, сохраняет предыдущие версии файла с вытекающим из этого обильным пожиранием места на диске - а оно емунадо?), без ключа содержимое этих файлов будет бесполезно и бессмысленно.
Почтальон
Модератор
343 / 265 / 46
Регистрация: 22.03.2015
Сообщений: 2,045
Завершенные тесты: 1
16.07.2015, 09:15     Удаление файлов: типы и способы #13
Смысл был в том, что рядовому пользователю по барабану до шифрования и безопасности его данных. Не сочтите за грубость, пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2015, 11:31     Удаление файлов: типы и способы
Еще ссылки по теме:
Удаление файлов C++
удаление файлов C++ WinAPI
C++ Builder Удаление файлов по маске
Удаление скрытых файлов C++ Builder
удаление файлов по таймеру C++

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

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
16.07.2015, 11:31     Удаление файлов: типы и способы #14
Цитата Сообщение от Почтальон Посмотреть сообщение
Смысл был в том, что рядовому пользователю по барабану до шифрования и безопасности его данных.
Так мы тут и разговариваем не с ним, а с человеком, которому тема безопасности изначально небезразлична, раз уж он задался вопросом надёжного стирания файлов.
Yandex
Объявления
16.07.2015, 11:31     Удаление файлов: типы и способы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru