Solved

Dynamically creating list of files in a folder

Posted on 2007-11-28
3
3,323 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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
This article discusses how to create an extensible mechanism for linked drop downs.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

772 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