Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
17 / 17 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
1

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

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

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

Посоветуйте литературу по этому поводу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2015, 11:07
Ответы с готовыми решениями:

Способы копирования файлов?
Добрый день. Вопрос: нет возможности скопировать и вставить любой файл в winXP, ни через...

Способы защиты файлов/папки
HANDLE H = CreateFileA("D:\XXX", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS |...

Типы файлов
здравствуйте! помогите пожалуйста! я хотела изменит иконки для папок, и что -то там намудрила....

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов...
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень...

13
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
14.07.2015, 12:00 2
Лучший ответ Сообщение было отмечено VoltDeMar как решение

Решение

Цитата Сообщение от VoltDeMar Посмотреть сообщение
Подозреваю что существует несколько методов удаления файлов.
И да, и нет. Операционная система предоставляет только один, самый простейший способ. Для остального надо проделывать вещи, предназначенные по сути для других целей. Например, просто перезаписать содержимое файла перед удалением.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Что из себя представляет удаление без перезаписи (какие именно действия производит ОС?)?
Если с упрощениями, то директория (папка) представляет из себя список записей о содержащихся в ней файлах. ОС помечает соответствующую запись как удалённую.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Существуют ли API для "полного удаления" ?
Нет, но существуют API для других вещей - записи в файл или дефрагментации.

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

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

Цитата Сообщение от Nick Alte Посмотреть сообщение
Вот это вряд ли, потому что работа с файлами на низком уровне относится как раз к специфике операционных систем. Для каждой операционной системы (даже хуже: для каждой файловой системы) всё по-разному. Так что и изучать придётся по отдельности. Ну если не считать простейших, но вполне действенных приёмов вроде перезаписи содержимого файла.
Думаю среди разработчиков кросплатформеров должны быть авторы статей и книг.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.07.2015, 09:28 6
Цитата Сообщение от VoltDeMar Посмотреть сообщение
При наличии определенных технологий частицы чая можно соскаблить со стенок определить состав и размножить =)
Но выпить тот чай, который там был, уже всё равно не получится. Если бы старую информацию можно было бы так вот взять и извлечь из-под новой, этим бы пользовались вовсю и у нас были бы вдвое более ёмкие винчестеры за те же деньги.
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Думаю среди разработчиков кросплатформеров должны быть авторы статей и книг.
Эта задача кроссплатформенной не является. Разные файловые системы устроены по-разному, для доступа к диску в разных ОС используются совершенно разные API и обобщать в настолько низкоуровневой задаче попросту нечего. Она полностью платформенно-специфична. Более того, даже при работе с одной и той же ОС и одной и той же файловой системой, но с разными носителями могут быть весьма специфические нюансы (вспомним про flash-носители, SSD и их систему равномерного износа, где перезапись файла будет заполнять не те участки носителя, где располагалось предыдущее содержимое).
1
17 / 17 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
15.07.2015, 14:25  [ТС] 7
Цитата Сообщение от Nick Alte Посмотреть сообщение
Эта задача кроссплатформенной не является. Разные файловые системы устроены по-разному, для доступа к диску в разных ОС используются совершенно разные API и обобщать в настолько низкоуровневой задаче попросту нечего. Она полностью платформенно-специфична. Более того, даже при работе с одной и той же ОС и одной и той же файловой системой, но с разными носителями могут быть весьма специфические нюансы (вспомним про flash-носители, SSD и их систему равномерного износа, где перезапись файла будет заполнять не те участки носителя, где располагалось предыдущее содержимое).
Т.е. при определенном уровне знаний просто можно придумать свою файловую систему? Взаимодействие с жестким диском полностью контролируется на уровне ОС, или на аппаратном уровне есть какие то преобразования? При записи через WinAPI используются идентификаторы ОС? а существуют ли идентификаторы в самом жестком диске и есть ли к ним доступ?
0
918 / 635 / 198
Регистрация: 08.09.2013
Сообщений: 1,690
15.07.2015, 15:30 8
Цитата Сообщение от VoltDeMar Посмотреть сообщение
придумать свою файловую систему?
Можно, но уже существуют ФС, которые при удалении перезаписывают данные нулями. Самая распространенная - xfs.
Есть ещё утилиты безопасного удаления: shred, wipe, srm.
Насчет Венды не знаю, но, наверное, есть что-то подобное
1
управление сложностью
1685 / 1297 / 260
Регистрация: 22.03.2015
Сообщений: 7,548
Записей в блоге: 5
15.07.2015, 16:02 9
ТС, возьмите любой вузовский учебник по архитектуре ОС, там основные моменты расписаны. На самом деле при удалении файла - удаляется только его адрес из адресного пространства, по крайней мере у винды было так. Т.о. если новые данные не попали на новые адреса, то из можно восстановить
1
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.07.2015, 17:07 10
Цитата Сообщение от VoltDeMar Посмотреть сообщение
Т.е. при определенном уровне знаний просто можно придумать свою файловую систему?
Можно, и если держать её внутри файла (виртуальная файловая система), то уровень этот весьма доступен. Такая задача нередко попадается в вузовских лабораторных и курсовых работах по программированию, насколько мне известно.
Вот только зачем всякие ухищрения и сложности с разными ОС, ФС и хардваре, если, согласно товарищу Альтшуллеру, лучше всего сделать заранее? К примеру, файл можно сразу держать зашифрованным, а если он не больше не нужен, достаточно забыть ключ. И вот это, заметим, как раз очень даже кроссплатформенно.
1
управление сложностью
1685 / 1297 / 260
Регистрация: 22.03.2015
Сообщений: 7,548
Записей в блоге: 5
15.07.2015, 21:32 11
Цитата Сообщение от Nick Alte Посмотреть сообщение
К примеру, файл можно сразу держать зашифрованным, а если он не больше не нужен, достаточно забыть ключ. И вот это, заметим, как раз очень даже кроссплатформенно.
Немного дополню, с вашего позволения. Такой подход конечно хороший, для шпионов, но для простого юзверя намного проще "откатить" систему и восстановить "удаленные" файлы
1
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.07.2015, 21:39 12
Почтальон, не совсем понял смысл этого наполненного весёлыми лицами комментария.
Даже если у "простого юзверя" по какой-то непонятной причине включена система версионирования защищённых файлов (которая, на минуточку, сохраняет предыдущие версии файла с вытекающим из этого обильным пожиранием места на диске - а оно емунадо?), без ключа содержимое этих файлов будет бесполезно и бессмысленно.
1
управление сложностью
1685 / 1297 / 260
Регистрация: 22.03.2015
Сообщений: 7,548
Записей в блоге: 5
16.07.2015, 09:15 13
Смысл был в том, что рядовому пользователю по барабану до шифрования и безопасности его данных. Не сочтите за грубость, пожалуйста
1
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
16.07.2015, 11:31 14
Цитата Сообщение от Почтальон Посмотреть сообщение
Смысл был в том, что рядовому пользователю по барабану до шифрования и безопасности его данных.
Так мы тут и разговариваем не с ним, а с человеком, которому тема безопасности изначально небезразлична, раз уж он задался вопросом надёжного стирания файлов.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2015, 11:31

Способы копирования файлов и папок в другие папки и носители
Срочно нужны! больше 20 способов! Пожалуйста!

Какие есть способы загрузки файлов с сервера на клиент
И какие преимущества и недостатки. На просторах интернета я нашёл варианты через Responce,...

Типы файлов и другое
Привет всем. Мне нужна ваша помощь в поиске информации. Вот вопросы: 1.Все типы файлов в Паскале...

Зарегистрированные типы файлов
Доброго времени суток. Один идиот на моём компе сделал для файлов .php открытие по умолчанию с...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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