Solved

Dynamically creating list of files in a folder

Posted on 2007-11-28
3
3,315 Views
Last Modified: 2013-11-19
Hi Experts.

I am trying to show the files in a folder that is selected then when the user makes a selection generate a list of files in a listbox if the selection is a folder. When I click ion the 'show selected' button, The status bar tells me there is an error on the page. For testing purpose I call a function to display a message on the click event.

What am I doing wrong?
<HTML>

<HEAD>

<TITLE>"List of Folders"</TITLE>

</HEAD>
 

<script LANGUAGE="JavaScript">
 

doc = "";
 

<!----- Function ListOfFilesInAFolder - List files and folders in fldr -----

function ListOfFilesInAFolder(fldr) 

{

 fso = new ActiveXObject("Scripting.FileSystemObject");

 folder = fso.GetFolder(fldr);

 fc = new Enumerator(folder.subfolders);

 allfiles="";

document.write("<form name='frm1'>")

document.write("<select name='mySelect' size=15>")

for(;!fc.atEnd();fc.moveNext()) 

 {

	doc=fc.item()

	document.write("<option value='"+doc+"'>"+doc+"</option>")

 }

document.write("</select>")

document.write("<p><input type='button' value='show selected..' onClick='ListDocs(this.form);'</p>")

document.write("</form>")

}
 
 
 

<!---- Function Listdocs - List Files and Folders in made selection formObj  ----

function ListDocs(formObj){

output = "";
 

for(var i = 0; i < formObj.mySelect.options.length; i++){

   if(formObj.mySelect.options[i].selected){

     output += ", " + formObj.mySelect.options[i].value;

   }

 }

output = output.substring(2); 

fso = new ActiveXObject("Scripting.FileSystemObject");

folder = fso.GetFolder(output);

fc = new Enumerator(folder.subfolders);
 

document.write("<form name='frm1'>")

document.write("<select name='mySelect' size=15>")

for(;!fc.atEnd();fc.moveNext()) 

 {

	doc=fc.item()

	document.write("<option value='"+doc+"'>"+doc+"</option>")

 }

document.write("</select>")

document.write("<p><input type='button' value='show Select..' onClick='dply();' </p>")

document.write("</form>")
 

}
 
 

<!--- Function to test the onclick event in funtion ListDocs ---- 

function dply(){

alert("Test");

}
 

ListOfFilesInAFolder("C:\\");

</script>
 

</HTML>

Open in new window

0
Comment
Question by:tigger40ks
3 Comments
 
LVL 14

Accepted Solution

by:
B_Dorsey earned 125 total points
ID: 20371657
I rewrote your code cause it had extra code, Im sure you can get what you want out of what I have supplied.

b
<HTML>

<HEAD>

<TITLE>"List of Folders"</TITLE>

</HEAD>

 

<script LANGUAGE="JavaScript">

doc = "";

function ListOfFilesInAFolder(fldr){

 var sForm = document.frm1.mySelect

 fso = new ActiveXObject("Scripting.FileSystemObject");

 folder = fso.GetFolder(fldr);

 fc = new Enumerator(folder.subfolders);

 allfiles="";

 sForm.options.length = 0; 

 for(;!fc.atEnd();fc.moveNext()){

  doc=fc.item()

  myOption = document.createElement('Option');

  myOption.text = doc;

  myOption.value = doc;

  sForm.add(myOption);

 }

}
 

</script>

</head>

<body onLoad="ListOfFilesInAFolder('C:\\');">

<form name="frm1">

<select name="mySelect" size="15"></select>

<p><input type="button" value="show selected.." onClick="ListOfFilesInAFolder(this.form.mySelect.value);"></p>

</form>

</body>

</HTML>

Open in new window

0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 20374064
And the reason for the error is that if you document.write after the page has rendered (e.g. not inline) the page and the scripts on the page are wiped!
0
 

Author Closing Comment

by:tigger40ks
ID: 31411587
Thank you. Now all I need to do is add coding to decide if I select a file or folder. I have learned more on dynamic scripting.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now