Как я копирую файл или папку, которая заблокирована под окнами программно?

Ваш класс джинсов не предоставляет аргумент color для суперкласса.

public Jeans(String size)
{
    /* Default color for Jeans is blue. */
    super(size, "blue");
}
12
задан efotinis 17 November 2008 в 21:24
поделиться

3 ответа

Можно использовать 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 также.

16
ответ дан 2 December 2019 в 06:10
поделиться

Почти то же как мой ответ на другой вопрос:

Если Вы находитесь на Win32, официальный способ сделать это состоит в том, чтобы отметить его, чтобы быть перемещенным в перезагрузку и спросить пользователя к перезагрузке. Для маркировки файла, который будет перемещен в перезагрузку, использовать MoveFileEx с MOVEFILE_DELAY_UNTIL_REBOOT флаг.

Это - та же функция, только на этот раз Вы не передаете ПУСТОЙ УКАЗАТЕЛЬ как место назначения.

5
ответ дан 2 December 2019 в 06:10
поделиться

В зависимости от того, что точно заблокировало Ваш файл, можно или сделать Систему. IO.File. Копия (), или создают Систему. IO.BinaryReader и Система. IO.BinaryWriter и вручную создают копию файла путем чтения блоков заблокированного файла и записи им в новый файл. Я видел ситуации, где один метод был возможен, но другой не был, на основе того, почему файл был заблокирован.

Это - "вся.NET" ответ.

4
ответ дан 2 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: