質問

私は以下のコードブロックで混乱している、それはWebページではなくファイル自体のコンテンツをダウンロードする理由からです。私はそれが、私はそれをダウンロードするには、いくつかの文章でダミーファイルを作成しますが、私はダウンロードしたファイルを開いたとき、私は私が書いた任意のテキストが表示されていないが、それは奇妙なウェブ言語タグを持っています。

    private bool DownloadCSVfile()
    {
        bool downloadOk = false;
        WebClient client = null;

        try
        {
            client = new WebClient();
            client.Credentials = CredentialCache.DefaultCredentials;
            client.DownloadFile(myURL, CSVfile);

            if (File.Exists(CSVfile))
                downloadOk = true;
            else
                downloadOk = false;
        }
        catch (Exception error)
        {
            downloadOk = false;
            string err = error.Message;
        }

        //release resource
        if (client != null)
        {
            client.Dispose();
            client = null;
        }

        //
        if (downloadOk == true)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
役に立ちましたか?

解決

私は推測しているmyURLは「/」で終わると「.csvファイル」ではない、私は右ですか?あなたはmyURL + CSVFileは、ファイルへの完全なパスが含まれますことを考えていますか?それはしません。 URLは、ファイルへのパスである必要があります(ドキュメントを参照してください)自体。あなたはこのような何かを持つことが許可されています:

client.DownloadFile(@"./file.csv", "filename.txt");

私は正しい軌道に乗っていないよ場合は、どのようなURLにありますし、どのような最初のいくつかのタグの一部は、ダウンロードしたファイルであるが。教えてください。

他のヒント

このサイトは、ログインが必要なんし、それは本当にあなたをリダイレクトするのですか?

私はその前に1が、それは私が必要なファイルをダウンロードできるようになる前に、私のブラウジングの動きを偽造(やクッキーなどを保存する)私を必要と持っていた。

申し訳ありませんが、「Webページ」とは、「Webページの内容」に何を意味しています。 myURLあり、ここで関与して1つのURLのみが、あります。 myURL点は直接CSVファイルにしていますか?もしそうなら、あなたが実際に受信されている内容が見えますか?

またます:

if (File.Exists(CSVfile))
    downloadOk = true;
else
    downloadOk = false;

...恥ずかしいです。書きくださいます:

downloadOk = File.Exists(CSVfile);

つまり、1行の代わりに4において、同一の結果を有する。

//
if (downloadOk == true)
{
    return true;
}
else
{
    return false;
}

これはさらに悪くなります。単一行ます:

return downloadOk;

...コードの代わりの7の1行に正確に同じことを行います。

また、あなたの例外ブロックの両方の行...

catch (Exception error)
{
    downloadOk = false;
    string err = error.Message;
}

...絶対に何もしません。 downloadOkは、常にあなたの例外ブロックで偽となり、それがスコープの外に出る前に、ローカル変数「ERR」が使用されることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top