private void VForm_Load(object sender, EventArgs e) { lvF.TileSize = new Size(203, 53); conn = new ConnInfo(fpXML); Open(null); }
public static OpenRes Open(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = "OpenyourWebDAV/" + Application.ProductVersion; req.Method = "PROPFIND"; req.Headers["Depth"] = "1"; req.ContentLength = 0; req.PreAuthenticate = true; OpenRes ret = new OpenRes(); ret.baseUrl = req.RequestUri; try { using (HttpWebResponse res = (HttpWebResponse)req.GetResponse()) { ret.xmlo.Load(res.GetResponseStream()); ret.xmlo.Save(Path.GetTempFileName()); } } catch (WebException err) { ret.err = err; } return(ret); }
public Uploader(ConnInfo conn, Control win, INoticeIO nio, WaitHandle cancel) { this.conn = conn; this.win = win; this.nio = nio; this.cancel = cancel; }
public static GenRes SetMt(Uri uri, String fp, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "PROPPATCH"; req.PreAuthenticate = true; MemoryStream si = new MemoryStream(); { XmlDocument xmlo = new XmlDocument(); XmlElement elroot = xmlo.CreateElement("D", "propertyupdate", "DAV:"); xmlo.AppendChild(elroot); XmlElement elset = xmlo.CreateElement("D", "set", "DAV:"); elroot.AppendChild(elset); XmlElement elprop = xmlo.CreateElement("D", "prop", "DAV:"); elset.AppendChild(elprop); // http://code.google.com/p/sem-fs/source/browse/trunk/milton-api-patch/src/docs/vista/proppatch?spec=svn218&r=218 XmlElement elmt = xmlo.CreateElement("Z", "Win32LastModifiedTime", "urn:schemas-microsoft-com:"); elprop.AppendChild(elmt); elmt.AppendChild(xmlo.CreateTextNode(File.GetLastWriteTimeUtc(fp).ToString("r"))); StreamWriter wr = new StreamWriter(si); xmlo.Save(wr); } si.Position = 0; { req.ContentLength = si.Length; req.ContentType = "text/xml; charset=\"utf-8\""; req.SendChunked = true; using (Stream os = req.GetRequestStream()) { byte[] bin = new byte[4096]; while (true) { int r = si.Read(bin, 0, bin.Length); if (r < 1) { break; } os.Write(bin, 0, r); } } GenRes ret = new GenRes(); ret.baseUri = req.RequestUri; try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return(ret); } }
public static GenRes Upload2(Uri uri, String fp, ConnInfo conn, INoticeIO nio, WaitHandle cancel) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "PUT"; req.PreAuthenticate = true; using (FileStream si = File.OpenRead(fp)) { req.ContentLength = si.Length; req.ContentType = "application/octet-stream"; req.SendChunked = true; req.Pipelined = true; req.AllowWriteStreamBuffering = true; using (Stream os = req.GetRequestStream()) { byte[] bin = new byte[4096]; while (true) { nio.Notice(fp, si.Position, si.Length); if (cancel.WaitOne(0, false)) { break; } int r = si.Read(bin, 0, bin.Length); if (r < 1) { break; } os.Write(bin, 0, r); } } GenRes ret = new GenRes(); ret.baseUri = req.RequestUri; try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return(ret); } }
public static GenRes NewFolder(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "MKCOL"; req.PreAuthenticate = true; GenRes ret = new GenRes(); try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return(ret); }
public static GenRes Move(Uri uriFrm, Uri uriTo, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uriFrm); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "MOVE"; req.PreAuthenticate = true; req.Headers["Destination"] = HttpUtility.UrlPathEncode(uriTo.ToString()); req.Headers["Overwrite"] = "F"; GenRes ret = new GenRes(); try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return(ret); }
public static HeadRes Head(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "HEAD"; req.PreAuthenticate = true; HeadRes ret = new HeadRes(); ret.baseUri = uri; try { using (ret.res = (HttpWebResponse)req.GetResponse()) { } } catch (WebException err) { ret.err = err; } return(ret); }
public static GenRes Move(Uri uriFrm, Uri uriTo, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uriFrm); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "MOVE"; req.PreAuthenticate = true; req.Headers["Destination"] = HttpUtility.UrlPathEncode(uriTo.ToString()); req.Headers["Overwrite"] = "F"; GenRes ret = new GenRes(); try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return ret; }
public static GenRes NewFolder(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "MKCOL"; req.PreAuthenticate = true; GenRes ret = new GenRes(); try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return ret; }
public static GenRes SetMt(Uri uri, String fp, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "PROPPATCH"; req.PreAuthenticate = true; MemoryStream si = new MemoryStream(); { XmlDocument xmlo = new XmlDocument(); XmlElement elroot = xmlo.CreateElement("D", "propertyupdate", "DAV:"); xmlo.AppendChild(elroot); XmlElement elset = xmlo.CreateElement("D", "set", "DAV:"); elroot.AppendChild(elset); XmlElement elprop = xmlo.CreateElement("D", "prop", "DAV:"); elset.AppendChild(elprop); // http://code.google.com/p/sem-fs/source/browse/trunk/milton-api-patch/src/docs/vista/proppatch?spec=svn218&r=218 XmlElement elmt = xmlo.CreateElement("Z", "Win32LastModifiedTime", "urn:schemas-microsoft-com:"); elprop.AppendChild(elmt); elmt.AppendChild(xmlo.CreateTextNode(File.GetLastWriteTimeUtc(fp).ToString("r"))); StreamWriter wr = new StreamWriter(si); xmlo.Save(wr); } si.Position = 0; { req.ContentLength = si.Length; req.ContentType = "text/xml; charset=\"utf-8\""; req.SendChunked = true; using (Stream os = req.GetRequestStream()) { byte[] bin = new byte[4096]; while (true) { int r = si.Read(bin, 0, bin.Length); if (r < 1) break; os.Write(bin, 0, r); } } GenRes ret = new GenRes(); ret.baseUri = req.RequestUri; try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return ret; } }
public static GenRes Upload(Uri uri, String fp, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "PUT"; req.PreAuthenticate = true; using (FileStream si = File.OpenRead(fp)) { req.ContentLength = si.Length; req.ContentType = "application/octet-stream"; req.SendChunked = true; using (Stream os = req.GetRequestStream()) { byte[] bin = new byte[4096]; while (true) { int r = si.Read(bin, 0, bin.Length); if (r < 1) break; os.Write(bin, 0, r); } } GenRes ret = new GenRes(); ret.baseUri = req.RequestUri; try { ret.res = (HttpWebResponse)req.GetResponse(); } catch (WebException err) { ret.err = err; } return ret; } }
public static HeadRes Head(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); req.Credentials = conn.Auth; req.UserAgent = UA; req.Method = "HEAD"; req.PreAuthenticate = true; HeadRes ret = new HeadRes(); ret.baseUri = uri; try { using (ret.res = (HttpWebResponse)req.GetResponse()) { } } catch (WebException err) { ret.err = err; } return ret; }
public static OpenRes Open(Uri uri, ConnInfo conn) { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri ?? conn.Url); req.Credentials = conn.Auth; req.UserAgent = "OpenyourWebDAV/" + Application.ProductVersion; req.Method = "PROPFIND"; req.Headers["Depth"] = "1"; req.ContentLength = 0; req.PreAuthenticate = true; OpenRes ret = new OpenRes(); ret.baseUrl = req.RequestUri; try { using (HttpWebResponse res = (HttpWebResponse)req.GetResponse()) { ret.xmlo.Load(res.GetResponseStream()); ret.xmlo.Save(Path.GetTempFileName()); } } catch (WebException err) { ret.err = err; } return ret; }