Dynamically creating list of files in a folder

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

tigger40ksAsked:
Who is Participating?
 
B_DorseyConnect With a Mentor Commented:
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
 
Michel PlungjanIT ExpertCommented:
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
 
tigger40ksAuthor Commented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.