0

ユーザーが既存のダウンロード済み (同じ) ファイルを置き換えるファイルをダウンロードしないようにしています。したがって、ユーザーが確認するためのYesNoダイアログを作成しようとしました。ただし、そのフォルダーに「sample.xml」がなくても、ユーザーが [ダウンロード] ボタンをクリックすると、YesNo ダイアログが表示されます。私がどこで間違ったことをしたかを知ることができますか?私はプログラミングの知識が不足しています。申し訳ありませんが、ご容赦ください。

以下のように私のコード:

private void btnDownloadXML2_Click(object sender, EventArgs e)
{
    if (@"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml" != null)
    {
        DialogResult dialogResult = MessageBox.Show("Are you sure you want to re-download the file? This will replace the old file!", "Warning", MessageBoxButtons.YesNo);
        if (dialogResult == DialogResult.Yes)
        {
            using (WebClient client = new WebClient())
            {
                client.DownloadFile("http://www.lse.co.uk/chat/" + txtSharePriceSymbol.Text.ToString(),
                                    @"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml");
            }
            MessageBox.Show("Download Completed! File has been placed in the folder sharePriceXML!");
        }
        else if (dialogResult == DialogResult.No)
        {
            MessageBox.Show("The file is not downloaded. Your old file remains.");
        }
    }
    else if (@"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml" == null)
    {
        using (WebClient client = new WebClient())
        {
            client.DownloadFile("http://www.lse.co.uk/chat/" + txtSharePriceSymbol.Text.ToString(),
                                @"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml");
        }
        MessageBox.Show("Download Completed! File has been placed in the folder sharePriceXML!");
    }
}
4

1 に答える 1

3

ファイルパスを文字列としてチェックして、それがnullかどうかを確認しています.ファイルパスがあるため、決してnullではありません。

を使用する必要がありますFile.Exists()。これの代わりに:

if (@"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml" != null)

これを使って:

if (File.Exists(@"..\..\sharePriceXML\" + txtSharePriceSymbol.Text.ToString() + ".xml")) 
于 2012-08-10T01:44:48.307 に答える