-11

Сценарий выглядит следующим образом: я использую Windows XP. Предположим, у меня есть текстовый файл на рабочем столе с именем foo.txt.

  1. Я открываю foo.txt в первый раз и начинаю вносить изменения, но я еще не сохранил, поэтому состояние программы «Блокнот» таково, что файл «foo.txt» открыт в программе «Блокнот» и изменения не сохраняются.
  2. Теперь я перехожу на рабочий стол и снова открываю foo.txt, и Windows XP позволяет мне открывать foo.txt со старой версией без каких-либо изменений. Состояние программы «Блокнот» таково, что в двух разных экземплярах программы «Блокнот» открыты два экземпляра одного и того же файла foo.txt.
  3. Предположим, я забывчивый человек, поэтому я забыл, что в первом случае с foo.txt я уже внес некоторые изменения. Я вижу свой компьютер и вижу второй экземпляр, который активен, и я начинаю вносить некоторые изменения .. Сейчас состояние таково, что есть два экземпляра одного и того же файла с разными моими модификациями. И теперь я сохраняю последний активный файл (второй экземпляр). Тогда я вижу существование первого экземпляра файла, который все еще открыт .. тогда я говорю OMG .. Столь естественный инстинкт заключается в том, что я снова открываю файл foo.txt, в котором есть последние изменения, а затем пытаюсь объединить изменения обоих экземпляров.

Вместо всего этого, может ли Windows обнаружить, что файл уже открыт, и указать мне на уже открытый файл и позволить мне внести свои изменения мирно ??

ОБНОВЛЕНИЕ: я хотел знать, если Windows 7 по крайней мере заботился об этой проблеме .. Но все же ошибка существует в Windows 7 ... :(

3 ответа3

6

Я бы предположил, что ошибка - это отклонение от рекламируемой или ожидаемой * функциональности. Microsoft объявил (в файле справки Windows 7) Блокнот как:

Notepad is a basic text-editing program and it's most commonly used to view
or edit text files.

Ни одно объявление не сделано с функциональностью, которая поддерживает только одну открытую копию любого файла, и мое «разумное ожидание» «базовой программы редактирования текста» также не включало бы такую функцию. Поэтому я не верю, что то, что вы описываете, может быть разумно названо «ошибкой», а не «запросом функции».

4

Это не ошибка, но по замыслу.

Блокнот не имеет концепции блокировки файлов (как в "правильных" текстовых процессорах, таких как Word и т.д.). Поэтому то, что вы видите, следует ожидать.

Блокнот действительно предназначен только для быстрого редактирования простых текстовых файлов (например, файла .bat). Если вам нужна такая функциональность, вам нужно установить и использовать что-то вроде Notepad++.

1

Похоже, вы полагаетесь на важную работу с блокнотом. Это не мудро. Блокнот не выполняет блокировку файлов для своих активных файлов, что означает, что любой другой процесс может свободно открывать и читать / записывать в файл, даже когда вы работаете с ним в блокноте.

Вы должны найти альтернативный текстовый редактор для вашей работы, если это проблема для вас, но реальность такова, что проще проверить себя, если файл открыт (если он не является общим и потенциально пользователи сети имеют к нему доступ), чем пытаться и обеспечить блокировку файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .