Korzystam z następującego kodu, aby pobrać plik wmv za pośrednictwem WebResponse. Używam wątku do wywoływania tej funkcji:Jak używać WebResponse do pobrania pliku .wmv
static void GetPage(object data)
{
// Cast the object to a ThreadInfo
ThreadInfo ti = (ThreadInfo)data;
// Request the URL
WebResponse wr = WebRequest.Create(ti.url).GetResponse();
// Display the value for the Content-Length header
Console.WriteLine(ti.url + ": " + wr.Headers["Content-Length"]);
string toBeSaved = @"C:\Users\Kevin\Downloads\TempFiles" + wr.ResponseUri.PathAndQuery;
StreamWriter streamWriter = new StreamWriter(toBeSaved);
MemoryStream m = new MemoryStream();
Stream receiveStream = wr.GetResponseStream();
using (StreamReader sr = new StreamReader(receiveStream))
{
while (sr.Peek() >= 0)
{
m.WriteByte((byte)sr.Read());
}
streamWriter.Write(sr.ReadToEnd());
sr.Close();
wr.Close();
}
streamWriter.Flush();
streamWriter.Close();
// streamReader.Close();
// Let the parent thread know the process is done
ti.are.Set();
wr.Close();
}
Plik wydaje się być w porządku, ale program Windows Media Viewer nie może poprawnie otworzyć pliku. Jakiś głupi błąd dotyczący braku możliwości obsługi typu pliku.
Co niewiarygodnie łatwo mi brakuje?
Czy zweryfikowałeś, że Windows Media Viewer otwiera plik normalnie poza aplikacją? – thedz
Tak. Powinienem to wyjaśnić. – KevDog