FSO Pfadschreibweise für Dokumente

gianfranco0104

Erfahrenes Mitglied
Hi, ich habe ein Projekt welches sich nur Lokal befindet. Bislang habe ich Dateizugriffe via FSO ganz gut machen können, sie waren auf C:\\cnc\\USER\\
Dort habe ich beschrieben und umbenannt. Diesen will ich aber zukünftig nurnoch als Projektordner für Temporäres Dateihandling nutzen, danach das Fertige Projekt abspeichern im Windows Dokumente Ordner.

Wenn ich in Windows "C:\Documents and Settings\%UserName%\Documents" eingebe, komme ich auf den gewünschten Pfad, mit dem Korrekten Benutzer. Also habe ich das Ganze un meinem bislang lauffähigem Code auch eingegeben. Aber nun zeigt mir der Debugger bei C:\\Documents and Settings\\%UserName%\\Documents\\ PFAD NICHT GEFUNDEN

Der Code

Javascript:
var renFile = new ActiveXObject("Scripting.FileSystemObject");
        renFile.MoveFile("C:\\cnc\\USER\\" + projFileName + ".zip", "C:\\Documents and Settings\\%UserName%\\Documents\\" + projFileName + ".cm5");
        renFile = null;

Wenn ich meinen Benutzernamen direkt eingebe klappt es perfekt! also muss es doch ggf. für %UserName% eventuell eine andere Schreibweise geben?
 
Hallo,

Ich denke mal, System.Environment.getEnvironmentVariable sollte dies tun: http://msdn.microsoft.com/en-us/library/windows/desktop/ms723686(v=vs.85).aspx

Noch besser wäre es allerdings SpecialFolders zu nutzen.
Folgender Code von http://stackoverflow.com/questions/6518588/find-my-documents-path-with-javascript von Dr.Molle:
Javascript:
shell =new ActiveXObject("WScript.Shell");
pathToMyDocuments = shell.SpecialFolders('MyDocuments');

Somit kann sich der Dokumenten-Ordner irgendwo befinden. Er muss sich nicht zwingend auf C: befinden. Ich habe beispielsweise all meine Datenordner (Documents, Pictures, Videos, Music) auf einer Zweitpartition.
 
Für alle die wissen wollen, wie es geht (das ".cm5" ist nur mein eigener SuffixName. könnte auch ZIP bleiben o. anderes):
Javascript:
        setTimeout(function(){
          // Projekt Suffix von .zip in .cm5 umbenennen
          var renFile = new ActiveXObject("Scripting.FileSystemObject");
          shell = new ActiveXObject("WScript.Shell");
          pathToMyDocuments = shell.SpecialFolders('MyDocuments');
          // Erzeuge .CM5-File und in "BENUTZERNAME\Dokumente\CM5Projects" verschieben
          renFile.CopyFile("C:\\cnc\\USER\\" + projFileName + ".zip", pathToMyDocuments + "\\CM5Projects\\" + projFileName + ".cm5", 1);  // 1=overwrite
          renFile.DeleteFile("C:\\cnc\\USER\\" + projFileName + ".zip", true);  //Nach verschieben tempZip löschen
          renFile = null; 
        },5000);

HINWEIS: es gäbe auch MoveFile statt CopyFile, aber dann ist ein überschreiben, wenn vorhanden, gleichnamigen Dateien nicht möglich (zum. habe ich keine Beschreibung gefunden und mit "..,1)" geht es nicht - Fehlermeldung.
 

Neue Beiträge

Zurück