user2142786
user2142786

Reputation: 1482

How to get the count of file in a directory using jquery?

i want t get the number of files in a folder. there are many images in my folder i want to count there numbers is there any way to do that using jquery or javascript ? Thanks in advance

Upvotes: 2

Views: 14452

Answers (3)

davidkonrad
davidkonrad

Reputation: 85528

If the server is Apache and Directory Listing is allowed, and you AJAX' a directory, Apache will typically return a document with a <table> containing the files in the directory if there is no index files present. You can extract the <table> from the document and show it, or count the number of rows in the table containing file information. I would consider any row in that table having a size column with value 0 or higher as a file.

markup :

<div id="fileCount"></div>
<div id="files"></div>

ajax:

$.ajax({
    url: "images/",
    success: function(data) {
        var parser = new DOMParser(),
            doc = parser.parseFromString(data, 'text/html');

        //output the file table
        $("#files").append(doc.querySelector('table').outerHTML);

        //or return the number of files
        //tr = icon, filename, date, size, desc
        //consider all rows with a size value holding a number as a vlid file
        var fileCount = 0,
            rows = doc.querySelector('table').querySelectorAll('tr');

        for (var i=0;i<rows.length;i++) {
            if (rows[i].children[3]) {
                if (parseInt(rows[i].children[3].innerText)>0) fileCount++;         
            }
        }
        $("#fileCount").text(fileCount+' files');
    }
});

Upvotes: 4

Surajghosi
Surajghosi

Reputation: 226

JavaScript is client side language. it not allowed to access file to server, if you are using ASP.net then use below line of code for get count of file.

IO.Directory.GetFiles("\translated\path","27_*.jpg").Count()

Upvotes: -1

Utku
Utku

Reputation: 300

I didn't tried yet, but could be like this.

$.ajax({
    url: "/images-folder-on-server/",
    success: function (data) {
        var image_count = $(data).length();     
    }
});

Upvotes: 1

Related Questions