문제

웹 페이지의 내용을 파일 자체로 다운로드하는 이유는 아래 코드 블록과 혼동됩니다. 텍스트가 포함 된 더미 파일을 만들면 다운로드하지만 다운로드 파일을 열면 쓴 텍스트가 표시되지 않지만 이상한 웹 언어 태그가 있습니다.

    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의 내용과 다운로드 된 파일에 처음 몇 가지 태그가 무엇인지 알려주십시오.

다른 팁

사이트에 로그인이 필요하고 실제로 귀하를 리디렉션합니까?

나는 그 전에 필요한 파일을 다운로드하기 전에 탐색 움직임 (그리고 쿠키 등을 저장하는 것)을 가짜를 가졌다.

죄송합니다. "웹 페이지"는 "웹 페이지의 내용"에서 의미합니다. 여기에는 하나의 URL이 있습니다. Myurl은 CSV 파일을 직접 지적합니까? 그렇다면받는 내용은 실제로 어떻게 생겼습니까?

또한:

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

... 창피합니다. 작성하십시오 :

downloadOk = File.Exists(CSVfile);

그것은 4 대신 1 줄에서 동일한 결과를 가지고 있습니다.

//
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