Войти

Показать полную графическую версию : [решено] Ошибка при вызове DownloadFile класса System.Net.WebClient


ThFox
21-02-2014, 01:07
Стоит задача скачать большое количество файлов ссылки на которые хранятся в текстовом файле.

$urlfil = get-content C:\!Work\!MY\Test\urls.txt
[int]$num = 1
$wc = New-Object System.Net.WebClient
foreach($source in $urlfil)
{
$name = "book"+$num
$target = "C:\!Work\!MY\Test\ext\$name.fb2"
$wc.DownloadFile($source, $target)
$num = $num+1
}

При попытке выполнения выдается сообщение об ошибке:

Исключение при вызове "DownloadFile" с "2" аргументами: "Исключение во время запроса WebClient."
строка:10 знак:17
+ $wc.DownloadFile <<<< ($source, $target)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Kazun
21-02-2014, 09:01
Покажите:
try {$wc.DownloadFile($source, $target)} catch {$_.Exception.InnerException}

ThFox
21-02-2014, 13:25
try {$wc.DownloadFile($source, $target)} catch {$_.Exception.InnerException} »

Он немногословен:

PS C:\Users\Fox> try {$wc.DownloadFile($source, $target)} catch {$_.Exception.InnerException}
Исключение во время запроса WebClient.

Может необходима какая-нибудь конкрентная кодировка текстового файла?

Iska
21-02-2014, 13:46
Может необходима какая-нибудь конкрентная кодировка текстового файла? »
Необходим сам файл «C:\!Work\!MY\Test\urls.txt», упакованный в архив.

Kazun
21-02-2014, 13:52
1) Проверить вывод get-content C:\!Work\!MY\Test\urls.txt на корректность данных
2) "C:\!Work\!MY\Test\ext\" - Существует
3) Если есть возможность, приведите ссылку для примера.

ThFox
21-02-2014, 14:44
:blush2: Необходим сам файл »
Не очень бы хотелось его светить, но сделал аналогичный список для нескольких картинок. Точно так же не работает, что, впрочем, не удивительно :)

UP: Запустил на другой машине, заработало. Оказалось, было недостаточно прав.

Iska
21-02-2014, 14:49
ThFox, у меня Ваш код работает.

2) "C:\!Work\!MY\Test\ext\" - Существует »
Путь «C:\!Work\!MY\Test\ext» существует?

Kazun
21-02-2014, 14:52
1) У Вас есть Proxy?
2) Попробуйте вместо $wc.DownloadFile,использовать:
Start-BitsTransfer -Source $source -Destination $target

ThFox
21-02-2014, 14:57
Путь «C:\!Work\!MY\Test\ext» существует? »
Прав на запись не было. Даже стыдно за такую глупость. Всем спасибо.

Kazun, запомню на будущее.




© OSzone.net 2001-2012