Ordnersuche scheitert in JavaScript

tklustig

Erfahrenes Mitglied
Hallo Coder,
anbei der Code,der mir widrigerseits vermeldet, der Ordner würde nicht exisiteren, was Quark ist, da das Fenster de facto geschloßen und neu geöffnet wird,wann immer ich auf den Button drücke. Was also mache ich falsch?
Javascript:
function erase_screen() {
let myFolder = "C:/Users/tklustig/Desktop/Composer/";
if(myFolder.length>0 && myFolder.FolderExists){
alert("Hurra, es gibt mich (" + myFolder + ").");
}
else alert("Schade, es gibt mich (" + myFolder + "). nicht");
window.close();
window.open("file:///"+myFolder+"/Composer_JSON.html");
}
 
Hi

FolderExists gibts afaikt in JS nicht (schau mal in die JS-Konsole, ob da Fehlermeldungen sind...)

JS im Browser hat auch generell kaum Zugriff auf das lokale Filesystem, aus Sicherheitsgründen.
=> Das wird so nichts.
 
Es gibt keine Fehlermeldungen im Debugger. F12 ist immer die erste Taste,die ich drücke,sofern irgendetwas nicht stimmt.
Warum also spuckt der Browser keinen Fehler aus,wenn ich einen Befehl verwende,den es in JS gar nicht geben soll?
Und warum klappt dann dieses Programm tadellos?
Code:
var Fo =new ActiveXObject("Scripting.FileSystemObject");
var StrOut = new String();
var FileName = new String();
var Extention = new String();

function FindFile(FOo)
{
    var FSo = new Enumerator(FOo.Files);
    for(i=0;!FSo.atEnd();FSo.moveNext())
    {
        if(FileName == "*" ||  FSo.item().name.slice(0,FSo.item().name.lastIndexOf(".")).toLowerCase().indexOf(FileName)>-1)
            if(Extention == "*" || FSo.item().name.slice(FSo.item().name.lastIndexOf(".")+1).toLowerCase().indexOf(Extention)>-1){
                StrOut += "<tr "+ ((i%2)? "":"bgcolor=#DDAA55")  +"><td width=50%><font class=find>" + FSo.item().name + "</font></td><td width=25%><font class=find>" + FSo.item().type + "</font></td><td width=50%><font class=find>"+ String(FSo.item().size/(1024*1024)).slice(0,3) +" MB</font></td></tr>";
                i++
                }
    }
}

function Scan()
{
    FileName = (search.value.lastIndexOf(".")>-1)? search.value.slice(0,search.value.lastIndexOf(".")):(search.value.length>0)? search.value.toLowerCase():"*"; //Get Searched File Name
    Extention = (search.value.lastIndexOf(".")>-1)? search.value.slice(search.value.lastIndexOf(".")+1).toLowerCase():"*"; // Get Searched File Extention Name

    if(path.value.length>0 && Fo.FolderExists(path.value)){
        StrOut = "<table border=0 width=100% cellspacing=0>"
        FindFile(Fo.GetFolder(path.value));
        outPut.innerHTML = StrOut+"</table>";
        }
    else alert("Insert Correct Path Address");
}
 
Ah, ActiveX
Code:
var Fo =new ActiveXObject("Scripting.FileSystemObject");

a) Das ist nicht (nur) Javascript.
b) Es wird nur im InternetExplorer unterstützt. Kein Chrome, Firefox, usw., und speziell auch kein Edge.
c) Einer der Hauptgründe dürfte sein, dass es einfach unsicher ist ... prinzipiell, also nichts was man ausbessern könnte. Falls du in deinem Browser keine Sicherheitsabfragen bekommst, ob die Seite sowas ausführen darf, wäre es ratsam das umzustellen. (Oder eher früher als später vom aufgegebenen Browser IE weggehen).

Jedenfalls, zum Code: FolderExists wird im Beispiel auf einem ActiveXObject("Scripting.FileSystemObject") aufgerufen, nicht auf einem String wie in deinem Code am Anfang.
 
Zurück