Search code examples
c#winformsvisual-studio-2012farpoint-spread

Download file directly to memory


I would like to load an excel file directly from an ftp site into a memory stream. Then I want to open the file in the FarPoint Spread control using the OpenExcel(Stream) method. My issue is I'm not sure if it's possible to download a file directly into memory. Anyone know if this is possible?


Solution

  • Yes, you can download a file from FTP to memory.

    I think you can even pass the Stream from the FTP server to be processed by FarPoint.

    WebRequest request = FtpWebRequest.Create("ftp://asd.com/file");
    
    using (WebResponse response = request.GetResponse())
    {
        Stream responseStream = response.GetResponseStream();
        OpenExcel(responseStream);
    }
    

    Using WebClient you can do nearly the same. Generally using WebClient is easier but gives you less configuration options and control (eg.: No timeout setting).

    WebClient wc = new WebClient();
    using (MemoryStream stream = new MemoryStream(wc.DownloadData("ftp://asd.com/file")))
    {
        OpenExcel(stream);
    }