Copy-paste и Send To - довольно широкие понятия.
Операции вырезания, копирования и вставки связаны с буфером обмена - специальной областью, где различные элементы могут быть временно сохранены после вырезания или копирования.
Что на самом деле делают операции вырезания и копирования, зависит от того, к чему вы их применяете. Например, в Блокноте, если вы вырезаете какой-то текст, он сразу же удаляется из окна Блокнота и помещается в буфер обмена. Копирование этого создаст копию в буфере обмена, но без удаления исходного текста. Текст в буфере обмена будет помечен как обычный текст. Вы можете вставить его столько раз, сколько захотите, независимо от того, вырезали вы его или скопировали. Буфер обмена выглядит так:
Простой текст: быстрая коричневая лиса перепрыгивает через ленивую собаку.
В Word, если вы вырезаете или копируете что-то, оно тоже попадет в буфер обмена, но будет помечено как изображение, таблица, форматированный текст или что-то еще.
Отформатированный текст: быстрая коричневая лиса перепрыгивает через ленивую собаку.
Вставка содержимого из Word в Блокнот удалит форматирование, сделав его простым текстом. При обратном направлении Word спросит, какой стиль вы хотите применить - обычный текст не имеет форматирования, но все в документе Word имеет.
Аналогичные правила применяются к картинкам. Вы можете вырезать их один раз или скопировать, а затем вставлять бесконечное количество раз. Изображение - это всегда картинка, поэтому проблем с форматированием нет. Вы не можете вставить изображение в Блокнот (потому что это не обычный текст), но вы можете вставить его в Word (форматирование будет применено автоматически).
Файлы также работают таким образом, но, как вы заметили, если вы вырезали файл, вы можете вставить его только один раз (чего не было в предыдущих примерах). Причина такого поведения на самом деле довольно проста.
Допустим, у вас есть 256 МБ ОЗУ (я знаю, что сегодня это маловероятно, но давайте предположим, что ради этого примера). Вы хотите скопировать файл в другую папку, но размер файла составляет около 1 ГБ - в четыре раза больше, чем ваша общая память, не говоря уже о свободной памяти. Теперь это не сработает. Более того, даже если файл помещается в ОЗУ, перемещение его таким образом будет опасным, поскольку буфер обмена теряется после завершения работы, поэтому отключение питания может привести к повреждению некоторых важных файлов, если это произойдет во время процедуры копирования и вставки.
На самом деле, когда вы вырезаете или копируете файл, его путь помещается в буфер обмена с дополнительной аннотацией для удаления оригинала после вставки его в другое место. Таким образом, у вас нет всего файла в буфере обмена, только его путь и некоторые сведения о том, что с ним делать:
Файл: C:\MyFile.txt, не удаляйте оригинал после его вставки куда-либо.
или если вы обрежете его вместо копирования:
Файл: D:\Videos\BigBuckBunny.mp4, удалите оригинал, вставив его куда-нибудь.
При вставке вырезанного файла путь из буфера обмена разрешается, а файл перемещается или копируется. Есть два основных последствия: во-первых, поэтому вы можете вставить вырезанные файлы только один раз - путь все еще находится в буфере обмена, но его больше нет на жестком диске. Во-вторых, вырезанный файл не исчезает мгновенно, но когда он вставляется в другое место - если вы изменяете его тем временем, измененный файл будет перемещен.
Теперь Send To не намного сложнее. Подобно тому, как приложения могут помещать в буфер обмена различные типы данных, Send To может иметь много видов целей. Это реализовано грязным и хакерским способом, но было бы трудно сделать это другим способом, сохранив его функциональность.
Цели Send To - это файлы в некотором каталоге, вы должны увидеть их, набрав это в меню «Пуск» и нажав Enter:
%appdata%\Microsoft\Windows\SendTo
Вы заметите, что некоторые из этих файлов являются ярлыками, а некоторые нет. Что касается ярлыков, то все просто - когда файл отправляется ему через контекстное меню, он передается в качестве аргумента цели ярлыка. Вся дальнейшая обработка остается за этим приложением, Windows больше не участвует.
Об этих файлах, которые не являются ярлыками - это особые файлы, которые обрабатываются Explorer (приложением, которое отвечает за отображение рабочего стола и меню «Пуск»). Если вы выберете « Отправить» -> «Документы», Explorer обработает ваш запрос и создаст копию файла. Детали этой операции зависят от того, как Проводник ее обрабатывает, возможно, это просто операция копирования файла. (Я имею в виду только чистое копирование пути пути, без буфера обмена - программы не должны использовать буфер обмена, если вы точно знаете, куда копировать файл, буфер обмена - просто временное место для пути исходного файла, если вы не знаете цель еще)