2010-02-16 2 views
2

xml 파일을 원격 FTP 사이트에 업로드해야하는 프로젝트에서 작업 중입니다.C#을 사용하여 메모리에서 원격 사이트로 FTP 파일 업로드

xml 문자열을 메모리에서 원격 FTP 사이트로 저장할 수 있습니까? ... 내가봤을 때 나는 먼저 로컬 디스크에 파일을 작성한 다음 디스크와 FTP에서 원격 사이트로 읽어야합니다.

저는 C#을 사용하고 있습니다.

감사합니다.

답변

3

FileStream 대신 MemoryStream을 사용하여 FTP 서버에 데이터를 "쓰는"것이 완벽하게 가능합니다. 내 머리의 상단에서

: 당신은 단순히 있다면 문제가되지 않습니다, 스트림을 필요, 즉

var data = ASCIIEncoding.ASCII.GetBytes(yourXmlString); 
using (var dataStream = new MemoryStream(data)) 
using (var requestStream = ftpRequest.GetRequestStream()) 
{ 
    contentLength = dataStream.Read(buffer, 0, bufferLength); 

    while (contentLength != 0) 
    { 
      requestStream.Write(buffer,0,bufferLength); 
      contentLength = dataStream.Read(buffer, 0, bufferLength); 
    } 
} 

(코드 스 니펫, 난 당신이 이미 FTP 물건이 asume) FileStream 또는 MemoryStream

+0

감사합니다, 매력처럼 작동 –

+0

'bufferLength' 변수에 대해 혼란스러워합니다. ASCII 코드로 스트림의 길이를 바이트 단위로 가져 오거나 길이를 얻고 있습니까? –

+0

@Nick 이것은 선택한 버퍼 크기입니다. 주어진 시간에 얼마나 많은 바이트를 메모리에 저장하고 싶습니까? 선택한 값은 사용하는 하드웨어에 따라 달라질 수 있습니다. PC에서는 데이터가 작을지라도 큰 버퍼를 사용할 수 있지만 포함 된 장치 (.NET MF)에서는 1024 바이트 미만으로 유지해야 할 수 있습니다. – TimothyP