2016-04-26 2 views
0
System.IO.File.Copy(sourceFilePath, destinationFilePath) 

периодически выбрасывает IOExeception.C# - File.Copy() кидает «Недостаточно системных ресурсов для завершения операции» исключение

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

Exception Метательное: "System.IO.IOException" в mscorlib.dll.

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

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

Этот вопрос не постоянно воспроизводимым.

+0

Любые шаблоны, относящиеся к размеру копируемых файлов? Я имею в виду, что это происходит чаще в больших файлах? Также каков размер (в МБ) файлов, копируемых там, где он происходит? – Igor

+0

Привет, Игорь. Исходя из того, что я наблюдал, я думаю, что частота появления проблемы определенно коррелирует с размером файла. Размер копируемых файлов, где возникает эта проблема, составляет 600 ~ 700 МБ. – Jimbo

+0

'File.Copy' использует метод API окон для выполнения копии. Я не уверен, какова фактическая реализация на самом деле, но, возможно, она не выполняет копию в кусках. Я бы попытался изменить код и открыть 2 потока файлов (1 для чтения, 1 для записи), выполнить цикл и читать и писать в кусках, пока содержимое не будет скопировано. – Igor

ответ

0

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

+0

Спасибо, Чарльз. На какой машине может возникнуть проблема с памятью? A, B или C? – Jimbo

+0

Я бы сказал, что это тот, который бросает ошибку. Это звучит как машина A. Это тот, из которого вы выполняете код, правильно? – Karlomanio