An easy-to-use async WebDAV client for .NET, .NETStandard, UAP and Portable based on https://github.com/skazantsev/WebDavClient.
- .NET Framework 4.5 and 4.6
- .NET Standard 1.1, 2.0 and 2.1
- .NET 6.0 and 7.0
- Blazor WASM
- Portable (Profile7, Profile32, Profile44, Profile111, Profile115). See portablelibraryprofiles.
using (var webDavClient = new WebDavClient())
{
var result = await webDavClient.Propfind("http://mywebdav/1.txt");
if (result.IsSuccessful)
// continue ...
else
// handle an error
}
See https://github.com/StefH/WebDAV-AudioPlayer/tree/master/src/Blazor-WebDAV-AudioPlayer.v2
var clientParams = new WebDavClientParams { BaseAddress = new Uri("http://mywebdav/") };
using (var webDavClient = new WebDavClient(clientParams))
{
await webDavClient.Propfind("1.txt");
}
var clientParams = new WebDavClientParams { BaseAddress = new Uri("http://mywebdav/") };
using (var webDavClient = new WebDavClient(clientParams))
{
await webDavClient.Mkcol("mydir"); // create a directory
await webDavClient.Copy("source.txt", "dest.txt"); // copy a file
await webDavClient.Move("source.txt", "dest.txt"); // move a file
await webDavClient.Delete("file.txt", "dest.txt"); // delete a file
await webDavClient.GetRawFile("file.txt"); // get a file without processing from the server
await webDavClient.GetProcessedFile("file.txt"); // get a file that can be processed by the server
await webDavClient.PutFile("file.xml", File.OpenRead("file.xml"), "text/xml"); // upload a resource
}
// list files & subdirectories in 'mydir'
var result = await webDavClient.Propfind("http://mywebdav/mydir");
if (result.IsSuccessful)
{
foreach (var res in result.Resources)
{
Trace.WriteLine("Name: " + res.DisplayName);
Trace.WriteLine("Is directory: " + res.IsCollection);
// other params
}
}
var clientParams = new WebDavClientParams
{
BaseAddress = new Uri("http://mywebdav/"),
Credentials = new NetworkCredential("user", "12345")
};
using (var webDavClient = new WebDavClient(clientParams))
{
// call webdav methods...
}
WebDAV-Client is licensed under the MIT License.