C# — File.Copy() выдает Недостаточно системных ресурсов для завершения запрошенного исключения службы

System.IO.File.Copy(sourceFilePath, destinationFilePath)

периодически выдает IOExeception.

Исключение говорит:

Возникло исключение: System.IO.IOException в mscorlib.dll.

Дополнительная информация: Недостаточно системных ресурсов для выполнения запрошенной службы.

Я вызываю этот код на машине A. sourceFilePath на машине B. destinationFilePath на машине C.

Эта проблема не всегда воспроизводима.


person GoCurry    schedule 26.04.2016    source источник
comment
Любые закономерности, связанные с размером копируемых файлов? Я имею в виду, случается ли это чаще с большими файлами? Также каков размер (в МБ) копируемых файлов, где это происходит?   -  person Igor    schedule 26.04.2016
comment
Привет Игорь. Основываясь на том, что я наблюдал, я думаю, что скорость возникновения проблемы определенно коррелирует с размером файла. Размер копируемых файлов, в которых возникает эта проблема, составляет 600 ~ 700 МБ.   -  person GoCurry    schedule 27.04.2016
comment
File.Copy использует базовый метод Windows API для выполнения копии. Я не уверен, что такое фактическая реализация, но, возможно, она не выполняет копию по частям. Я бы попытался изменить ваш код и открыть 2 файловых потока (1 для чтения, 1 для записи), выполнить цикл и читать и записывать фрагментами, пока содержимое не будет скопировано.   -  person Igor    schedule 27.04.2016
comment
Вот несколько ссылок с кодом, который вы можете попробовать: stackoverflow.com/a/1247042/1260204, stackoverflow.com/a/6216495/1260204, переполнение стека. com/a/230141/1260204,   -  person Igor    schedule 27.04.2016


Ответы (1)


Скорее всего, это проблема с памятью на вашем компьютере. Я бы начал с просмотра размера вашего файла подкачки.

person Karlomanio    schedule 26.04.2016
comment
Спасибо, Чарльз. У какой машины может быть проблема с памятью? А, В или С? - person GoCurry; 27.04.2016
comment
Я бы сказал, что это тот, который выдает ошибку. Это похоже на машину А. Это та, с которой вы выполняете код, верно? - person Karlomanio; 27.04.2016