Hazar Опубликовано 25 октября, 2006 Жалоба Поделиться Опубликовано 25 октября, 2006 Расскажите, пожалуйста, как перезаписывается на HDD файл после открытия и редактирования его в программе-редакторе? То есть, меня интересует, файл полностью перезаписывается в другое место (как бы заново создается) или неизменённые данные остаются в прежних кластерах? Или если такой вариант: файл ДОписывается, что будет в этом случае? --- <Уважаемые модераторы, долго думал в какой раздел задать этот вопрос. Прошу извинить, если определился неверно> Ссылка на комментарий Поделиться на другие сайты Поделиться
DJFlint Опубликовано 25 октября, 2006 Жалоба Поделиться Опубликовано 25 октября, 2006 Файл перезаписывается поверх существующего, те восстановить его прежнее состояние невозможно, разве что сохранять его с использованием пункта меню "Сохранить как...", данный пункт меню имеется практически во всех редакторах любых типов файлов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gеneral Опубликовано 25 октября, 2006 Жалоба Поделиться Опубликовано 25 октября, 2006 Hazar: важную роль в работе любой оси играет озу-оперативно-запонинающее-устройство, так вот , озу является временным местом где происходят все операции по работе любой программы , с любым файлом... после того как ты сделал изменения в файле, данные изменились не в файле, а данных которые хранит озу, и лишь после нажатия кнопки сохранения в текстовом редакторе произодет перезапись существущего файла... Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 25 октября, 2006 Жалоба Поделиться Опубликовано 25 октября, 2006 Честно говоря, точно не знаю, но давай подключим логику. То есть, меня интересует, файл полностью перезаписывается в другое место (как бы заново создается) или неизменённые данные остаются в прежних кластерах? Для того, чтобы действовать по схеме "неизменённые данные остаются в прежних кластерах" надо найти эти самые неизмененные данные. Кроме того, измененные данные надо выровнять по размеру кластера, чтобы неизмененные данные в кластере не сдвинулись. Все это достаточно дорогостоящие операции, и заниматься ими особого смысла я не вижу. Поэтому логичнее было бы просто записать данные на диск, пометив старые кластеры как неиспользуемые. Это не исключает того, что может быть и есть какой-то редактор, предназначенный для редактирования больших файлов, и в его создатели придумали и реализовали подобный алгоритм, самостоятельно переписав функции работы с файлами на низком уровне. Но представь себе сложности, с которыми при этом можно столкнуться: поддержка различных файловых систем, работа с сетевыми ресурсами и пр. Так что это, скорее, из области фантазий. Или если такой вариант: файл ДОписывается, что будет в этом случае? Старые данные не трогаются, просто новые дописываются в конец. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 октября, 2006 Жалоба Поделиться Опубликовано 25 октября, 2006 (изменено) То есть, меня интересует, файл полностью перезаписывается в другое место (как бы заново создается) или неизменённые данные остаются в прежних кластерах?Точно сказать, что, где, когда и как, я, как и Shurr, не могу, в операционных системах очень многое "заметается под ковер", многие вещи - "ноу-хау", а что и как на самом деле делает операционная система или программа, часто можно узнать только экспериментами. Файл перезаписывается заново, хотя и не обязательно в другое место, особенно начало файла (есть такая функция, как открывание существующего файла на запись содержимого заново, она, во всяком случае, в простой FAT, сохраняла позицию начала файла, обнуляя его длину, а затем для записи в файл выделялись первые следующие за начальным кластером свободные на данный момент, возможно, не соседние, кластеры). Правда, со времен простой FAT много воды утекло... Уже начиная с Windows, появилась оптимизация распределением не просто кластеров, а цепочек последовательных кластеров с целью уменьшить фрагментацию. Появились виртуальные кластеры, фиктивные (sparse) кластеры и пр., например, запись коротких файлов NTFS прямо внутрь каталога файлов. Так что теперь все это наверняка зависит от файловой системы и применяемой операционной системой стратегии распределения памяти, от того, какими командами пользуется для записи файлов программа, от длины файлов, даже может зависеть от содержания выводимых данных (цепочки нулей могут заменяться фиктивными кластерами). Так что на пути от команды перезаписи файла до конкретных секторов диска стоит много всяких оптимизаций, которые могут менять положение данных на диске. Изменено 25 октября, 2006 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Hazar Опубликовано 26 октября, 2006 Автор Жалоба Поделиться Опубликовано 26 октября, 2006 Shurr, спасибо за логику! :) Тролль, спасибо за дебри! :) Всё это меня как раз-таки интересовало. Осмыслить всё, правда, пока трудно. Особенно что касается NTFS. Знаю, что система очень хитрая, читал немного (да кажется на вашем же форуме). Но в целом вы дали мне почву для размышлений. У меня даже была такая мысль (может вам смешной покажется) провести опыт: снять как-бы "кластерный" образ диска, затем отредактировать некий файл, снова обаз, и потом сравнить. Но это так лишь, потеоритизировать. Поскольку, задача это наверное чрезвычайно трудоёмкая, да и тем более я не представляю себе как это можно сделать. :) Наверное с помощью DiskEdit или чего-то подобного? В любом случае я к таким экспериментам ещё не готов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Valery Опубликовано 26 октября, 2006 Жалоба Поделиться Опубликовано 26 октября, 2006 Если потеоретизировать... то насколько мне известно, если вбросить на диск, или в папку файл с именем, которое там уже есть, то есть, заместить файл, то имя файла в оглавлении диска будет числиться за другим файлом, а место, которое занимал старый файл, будет считаться системой пустым. Новый файл может записаться на место старого, либо на другое место, тут уж как решит система. Считается (и на форуме много раз видел такое утверждение, и в других местах), что просто стертый файл можно восстановить при помощи специальных программ, а вот переписанный, - невозможно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения