Ваш класс джинсов не предоставляет аргумент color
для суперкласса.
public Jeans(String size)
{
/* Default color for Jeans is blue. */
super(size, "blue");
}
Можно использовать VSS (Служба теневого копирования томов, не Visual SourceSafe) API с этой целью. В то время как мощный, это не точно простой в использовании API: Обзор Обработки Резервного копирования Под VSS должен дать Вам общее представление, что включено.
Даже при том, что это - относительно недавний API, поддержка.NET VSS в значительной степени (и непростительно) не существующая. Вы не можете назвать большую часть API через Interop, и функции файла Платформы не будут работать с пространством имен ядра использование VSS для представления созданных снимки файлов. В качестве награды, там являются ужасающими 32/64-bit и проблемы XP по сравнению с Vista, делая возбуждение развертывания также (ответственная команда в Microsoft должна быть действительно гордой!)
Так или иначе проект AlphaVSS намеревается принести полную функциональность VSS к.NET и выглядит чрезвычайно многообещающим, даже при том, что это находится все еще в предварительной стадии отладки. Это могло бы просто добиться цели для Вас, тем не менее, и это - открытый исходный код (Управляемый С++).
Для хорошего примера того, как сделать вещи с помощью Win32, посмотрите HoboCopy. Утилита довольно полезна самостоятельно, и полный источник C++ доступен от страницы проекта SourceForge также.
Почти то же как мой ответ на другой вопрос:
Если Вы находитесь на Win32, официальный способ сделать это состоит в том, чтобы отметить его, чтобы быть перемещенным в перезагрузку и спросить пользователя к перезагрузке. Для маркировки файла, который будет перемещен в перезагрузку, использовать MoveFileEx
с MOVEFILE_DELAY_UNTIL_REBOOT
флаг.
Это - та же функция, только на этот раз Вы не передаете ПУСТОЙ УКАЗАТЕЛЬ как место назначения.
В зависимости от того, что точно заблокировало Ваш файл, можно или сделать Систему. IO.File. Копия (), или создают Систему. IO.BinaryReader и Система. IO.BinaryWriter и вручную создают копию файла путем чтения блоков заблокированного файла и записи им в новый файл. Я видел ситуации, где один метод был возможен, но другой не был, на основе того, почему файл был заблокирован.
Это - "вся.NET" ответ.