Что было бы лучшим способом изменить время ожидания в зависимости от размера файла при попытке удалить его - PullRequest
0 голосов
/ 19 апреля 2011

Я хочу убедиться, что перемещаемый файл не существует в месте назначения.Это то, что я делаю

        // delete if exists already
        if (File.Exists(target))
        {
            File.Delete(target);
        }

        // move to target
        File.Move(source, target);

Но иногда файл не полностью удаляется, когда программа нажимает File.Move.Чтобы это исправить, я планирую использовать FileSystemWatcher для возобновления потока после успешного удаления файла.Но я не хочу ждать вечно, поэтому я хочу установить тайм-аут на FileSystemWatcher, чтобы через некоторое время он возобновил поток, даже если файл не был удален.

Я бы хотел сделать это время ожидания функцией размера файла.Допустим, если размер файла составляет 1 МБ, тайм-аут будет равен 1 секунде, но если он равен 10 МБ, это будет 10 секунд.Кто-нибудь сейчас лучший способ выбрать этот тайм-аут, или я должен просто использовать фиксированный тайм-аут, независимо от размера файла.

1 Ответ

0 голосов
/ 19 апреля 2011

Сделайте это наоборот:

// passing true as the 3rd param to Copy() causes it to overwrite the target file
File.Copy(source, target, true);
File.Delete(source);

(Если бы было File.Move(string, string, bool), я бы сказал, используйте это, но нет.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...