Home
english
Home
.NET Server
Java Server
.NET Client
AJAX Client
AJAX Browser
Map Drive
Pricing
Contacts
info@ithit.com



Managing Items Hierarchy with JavaScript WebDAV Library

This article describes how to list folder contents, create, copy, move and delete files and folders. This operations are supported by any Class 1 compliant WebDAV server.

Getting a List of Child Items

<html>

<head>

    <title>IT Hit WebDAV Client API for AJAX</title>

    <script type="text/javascript" src="ITHitWebDAVClient.js" ></script>

    <script type="text/javascript">

        function run()

        {

            var session = new ITHit.WebDAV.Client.WebDavSession();

            var folder;

            try

            {

                folder = session.OpenFolder("http://server:8080/folder");

            }

            catch(e)

            {

                if(e instanceof ITHit.WebDAV.Client.Exceptions.NotFoundException)

                    alert("Folder not found.");

                else

                    throw e;

            }

            if(folder!=null)

            {

                var items = folder.GetChildren(false);

                for(var i=0; i<items.length; i++)

                {

                    document.getElementById("container").innerHTML += items[i].DisplayName + "<br/>";

                }

            }

        }

    </script>

</head>

<body onload="run()">

<div id="container"></div>

</body>

</html>

 

If boolean parameter passed to WebDavSession.GetChildren is set to false only children of this folder are requested. Otherwise the entire subtree is requested.

Creating a Folder

var session = new ITHit.WebDAV.Client.WebDavSession();

var folder = session.OpenFolder("http://server:8765/");

var newFolder;

try

{

    newFolder = folder.CreateFolder("My Folder");

}

catch(e)

{

    if(e instanceof ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException)

        alert("Folder already exists.");

    else

        throw e;

}

if(newFolder!=null)

    document.getElementById("container").innerHTML = newFolder.CreationDate;

 

Creating a File and Uploading Content

var session = new ITHit.WebDAV.Client.WebDavSession();

var folder = session.OpenFolder("http://server/sales/");

var resource = folder.CreateResource("file.txt");

resource.WriteContent('File content.');

See also Uploading Files.

Reading File Content

var session = new ITHit.WebDAV.Client.WebDavSession();

var resource = session.OpenResource("http://server/sales/file.txt");

var content = resource.ReadContent();

 

To download only a part of a file you can specify 2 parameters in ReadContent call. First parameter is the starting byte (zero-based) at witch to start content download, the second – amount of bytes to be downloaded:

 

var content = resource.ReadContent(5, 200);

 

The library will add Range header to the request in this case.

Checking if Child Item Exists

var oNS = ITHit.WebDAV.Client;

var session = new oNS.WebDavSession();

var folder = session.OpenFolder("http://server/testfldr/");

 

var isItemExists = folder.ItemExists("image00.gif");

if(isItemExists)

    alert("Item exists");

else

    alert("Item not found");

 

Copying Items

var oNS = ITHit.WebDAV.Client;

var session = new oNS.WebDavSession();

var srcFolder = session.OpenFolder("http://server/Sales/");

var dstFolder = session.OpenFolder("http://server/Products/");

 

try

{

    srcFolder.CopyTo(dstFolder, "Test1", true, false);

}

catch (e)

{

      if(e instanceof oNS.Exceptions.PreconditionFailedException)

      {

            document.getElementById("container").innerHTML +=

                  "The item with such name exists and 'overwrite' was 'false'.";

      }

      else if(e instanceof oNS.Exceptions.WebDavHttpException)

      {

            document.getElementById("container").innerHTML +=

                  e.Message + " " + e.Status.Code + " " +

                  e.Status.Description + "<br/>";

           

            // Find which items failed to copy.

            for(var i=0; i<e.Multistatus.Responses.length; i++)

            {

                  var resp = e.Multistatus.Responses[i];

                  document.getElementById("container").innerHTML +=

                        resp.Href + " " + resp.Status.Code + " " +

                        resp.Status.Description + "<br/>";

            }

      }

      else

            throw e; // unexpected error

}

Moving Items

var oNS = ITHit.WebDAV.Client;

var session = new oNS.WebDavSession();

var srcFolder = session.OpenFolder("http://server/Sales/");

var dstFolder = session.OpenFolder("http://server/Products/");

 

try

{

      srcFolder.MoveTo(dstFolder, srcFolder.DisplayName, false);

}

catch (e)

{

      if(e instanceof oNS.Exceptions.PreconditionFailedException)

      {

            document.getElementById("container").innerHTML +=

                  "The item with such name exists and 'overwrite' was 'false'.";

      }

      else if(e instanceof oNS.Exceptions.WebDavHttpException)

      {

            document.getElementById("container").innerHTML +=

                  e.Message + " " + e.Status.Code + " " +

                  e.Status.Description + "<br/>";

           

            // Find which items failed to move.

            for(var i=0; i<e.Multistatus.Responses.length; i++)

            {

                  var resp = e.Multistatus.Responses[i];

                  document.getElementById("container").innerHTML +=

                        resp.Href + " " + resp.Status.Code + " " +

                        resp.Status.Description + "<br/>";

            }

      }

      else

            throw e; // unexpected error

}

Deleting Items

var oNS = ITHit.WebDAV.Client;

var session = new oNS.WebDavSession();

var item = session.OpenFolder("http://server:8080/Sales/");

 

try

{

      item.Delete();

}

catch (e)

{

      if(e instanceof oNS.Exceptions.WebDavHttpException)

      {

            document.getElementById("container").innerHTML +=

                  e.Message + " " + e.Status.Code + " " +

                  e.Status.Description + "<br/>";

           

            // Find which items failed to delete.

            for(var i=0; i<e.Multistatus.Responses.length; i++)

            {

                  var resp = e.Multistatus.Responses[i];

                  document.getElementById("container").innerHTML +=

                        resp.Href + " " + resp.Status.Code + " " +

                        resp.Status.Description + "<br/>";

            }

      }

      else

            throw e; // unexpected error

}


Selected Customers:
Country: Norway
DnB NOR Group
Country: Finland
Bank of Finland
USA
Symantec
Country: Sweden
Toyota
Country: Denmark
Danfoss Group
Country: USA
Microsoft
Country: Ukraine
Raiffeisen Bank
Country: USA
Siemens
Country: Ukraine
OTP Bank
Country: USA
Intel Corporation
Country: Austria
Austrian Federal Railways
Country: Israel
Autodesk, Inc.
Country: USA
U.S. Customs and Border Protection Agency
Home .NET Server Java Server .NET Client AJAX Client AJAX Browser Map Drive Pricing Contacts

Updated: Wednesday, December 10, 2008