Dateiordnerinhalte mit VBS auslesen
Waldgeist
- vb-script
0 Viennamade0 Waldgeist0 Viennamade0 Waldgeist
0 IeNurDose
Hallo!
Wie kann ich die Unterordner eines Ordners (z.B. D:/Fotos/) mit VBS auslesen? Die Ausgabe sollte ähnlich dem Windows Explorer aussehen. Also das man erstmal alle Unterordner von "D:/Fotos/" sieht. Die könnten dann zum beispiel "SommerUrlaub" oder "Weihnachten" heißen und wenn mann dann auf "SommerUrlaub" klickt werdne alle Unterordner und Dateien von "SommerUrlaub" angezeigt. Befinden sich daran Bilder sollen diese, bei Klick, in einem Neuen Fenster geöffnet werden.
Ich hoffe es kann mir jmd. helfen...
Gruß
Waldgeist
Hallo!
Wie kann ich die Unterordner eines Ordners (z.B. D:/Fotos/) mit VBS auslesen?
Guck mal:http://msdn.microsoft.com/library/en-us/script56/html/sgProgrammingFileSystemObject.asp
Beste Grüße
Viennamade
Hallo!
ein wenig hab ich ja schon mit der ganzen sache rumgespielt.
Das kam dabei herraus:
<HTML>
<body>
<script Language="VBSCRIPT">
'Einfache HTML-Seite zur Demonstration, wie man mit VBA die Name der Unterordner eines Ordners ausliest
DIM FSO ' Variable für den Zugriff auf das File System Object
DIM oFolder ' Variable für den Ordner, in dem die Unterordner entstehen
DIM oSubFolder ' Variable für die Unterordner
DIM Folder ' Variabel für den Ordner, in dem die Unterordner entstehen
Folder = "c:"
' Zugriff auf das FSO herstellen
Set FSO = CreateObject("Scripting.FileSystemObject")
' Das Ordnerobjekt auf den gewünschten Ordner "zeigen" lassen
Set oFolder = FSO.GetFolder(Folder)
' Jeder Unterordner in der Auflistung der SubFolders wird ausgegeben
document.write "<table border=1>"
document.write "<tr><td> Alle Unterordner des Ordners " & Folder & " </td></tr>"
For Each oSubFolder in oFolder.SubFolders
'Diese Zeile sieht komplizierter aus als sie ist! Es wird für jeden Unterordner eine Tabellenzeile und eine Zelle
'angelegt. Dann der eigentliche Link auf den Ordnernamen = Startordner + Unterordner erstellt.
'Danach kommt der restliche HTML Code. Ist doch garnicht schwer - oder? :-)
document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & ">"& oSubFolder.Name &"</a></tr></td>"
Next
'Tabelle schliessen
document.write "</table>"
</script>
</body>
</HTML>
Nur jetzt komme ich nicht weiter.
Er soll mir, wenn ich dann einen Ordner anklickt soll er mir die Unterordner dieses Ordners darfstellen. Ich hab aber grade keine Idee wie ich das machen soll.
Vielleicht wisst ihr ja noch was.
Hallo!
Ich würde ja gerne Deinen Quelltext ausprobieren, dafür müßte ich aber Diverses installieren und das mag ich nicht.
Aber mir scheint, daß Du auf der HTML-Seite "oben" den Objekten (Folder, etc.) fixe Werte - zB. "c:" - zuordnest.
Dort, wo Du den Verweis ("<a href ...") erstellst, linkst Du dann aber auf den entsprechenden Ordner und hier denke ich liegt der Fehler. Du müsstest m.E. auf die gleiche Seite (deren Quelltext Du hier gepostet hast) verweisen mit einem Querystring dessen Inhalt aus dem Namen des angeklickten Ordners besteht. Diesen Querystring dann für die Objektzuordnung verwenden.
Beste Grüße
Viennamade
Den Fien Wert den ich zuordne der ist ja nur mein Startwert. Das der alle Unterordner von C:\ untersucht. Dann müsste er aber irgendwie mit Startwert&SubFolder weiter machen. Weiß halt nur nie wie.
Was für Diverse sachen müsstest denn da Installieren?
Hallo!
Den Fien Wert
?
Dann müsste er aber irgendwie mit Startwert&SubFolder weiter machen. Weiß halt nur nie wie.
Dein Link lautet zur Zeit
document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & ">"& oSubFolder.Name &"</a></tr></td>"
also
<a href="c:\ + irgendwelche Ordner ...
ME. sollte er lauten:
<a href="dieseHtmlDatei?geklickter Ordner" ...
Und wenn dieseHtmlDatei aufgerufen wird benutzt Du aus dem Querystring "geklickter Ordner=x" das "x" um es dem entsprechenden Objekt zuzuordnen.
Was für Diverse sachen müsstest denn da Installieren?
Den scripting-host denke ich. Das Dictionary Object. Diverse Sicherheitseinstellungen runtersetzen. Vielleicht auch mehr, weiß ich aber nicht so genau.
Gruß
Viennamade
Das Script was ich da gepostet hab Funktioniert ja.
Es erfüllt nur nicht alle Funktionen so wie es gern hätte.
hi,
ich bin grad nicht so bei vbs, drum jscript und das nur ganz grob voller fragen, risiken und was weiß ich.
nur eine grobe richtung ... feilen ist deine sache ...
<script>
//only[EvIl]IE/jscript ;-)
var ausgabe;
function machIndex(myDir)
{
var fso, f, fc,ffc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(myDir);
fc = new Enumerator(f.SubFolders);
s="------------------Dirs--------------------------<br>";
for (; !fc.atEnd(); fc.moveNext())
{
s += "<a href='javascript:machIndex(""+slashIt(fc.item())+"")'>"+fc.item()+"</a>";
s += "<br>";
}
s+="-----------------Files--------------------------<br>";
ffc= new Enumerator(f.files);
for (; !ffc.atEnd(); ffc.moveNext())
{
s += ffc.item(); //hier prüfen was ist ein bild [gif|jpg|png](true = html-maskieren. bzw neue function: zeigeBildInNeuemFenster(dieserPfad))
s += "<br>";
}
// return(s);
ausgabe.innerHTML=s;
}
//document.write(z); //das ist echt unpassend hier
function init(){
ausgabe=document.getElementById('aus');
machIndex('C:/WINDOWS'); //hier kommt der absolute pfad der root rein ....
/*cool ist es dem script beizubringen seinen wohnort zu erkennen*/
}
//have nice fun with '' backslash
function slashIt(str){
str+='';
str=str.replace(/\/g,'/');
//alert(str);
return(str);
}
</script>
<body onload='init()'>
<div id='aus'></div>
*f**** nun ist da keine history mehr.
mein problem?
wenn du unbedingt vbs benutzen möchtest suche bei ms nach: VBSCRIP5.CHM -> das wird helfen obrieges script zu portieren.
online wohl asp.chm.
gruß
IeNurDose