Autor Thema: Verzeichnis mit Hilfe eines FSO löschen  (Gelesen 11279 mal)

Offline Christian Weiß

  • Junior Mitglied
  • **
  • Beiträge: 61
  • Geschlecht: Männlich
Verzeichnis mit Hilfe eines FSO löschen
« am: 18.04.12 - 17:50:35 »
Hallo,

über dieses Forum bin ich auf das FSO aufmerksam geworden.

In einem Thread habe ich dann folgenden Code gesehen:
Code
Set fso = createObject("Scripting.FileSystemObject")
fso.DeleteFolder "c:\Ordnername", False

Ich habe dies ausprobiert und es funktioniert auch.
Jetzt möchte ich allerdings gerne den Namen des Ordners als Konstante übergeben um das löschen eines Verzeichnisses so zum Beispiel in eine Lotusscript-Funktion auszulagern.
Wenn ich dann so etwas notiere:
fso.DeleteFolder DirectoryName, False

kriege ich eine Fehlermeldung: OLE: Automation object error
Könnt ihr mir einen Tipp geben, wie ich die Zeile richtig schrieben muss?

« Letzte Änderung: 24.04.12 - 17:38:29 von Christian Weiß »
Gruß

Christian

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #1 am: 18.04.12 - 22:14:20 »
Ins blaue geraten

1.
const DirectoryName$="c:\Ordnername"
fso.DeleteFolder DirectoryName, False

2.
dim myDirName as String
myDirName = DirectoryName
fso.DeleteFolder myDirName, False

3.
fso.DeleteFolder cstr(DirectoryName), False

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Christian Weiß

  • Junior Mitglied
  • **
  • Beiträge: 61
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #2 am: 19.04.12 - 10:06:19 »
Vielen Dank für die Antwort.
Mit fso.DeleteFolder cstr(DirectoryName), False hat es funktioniert.
Gruß

Christian

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #3 am: 14.06.13 - 11:36:20 »

Hallo, ich hab grad das selbe Problem. Kann es aber mit CStr nicht lösen  :-:
Liegt es daran, dass der Ordner direkt auf C:\ liegt und ich da generell nicht löschen kann mit dieser Funktion?


Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #4 am: 14.06.13 - 11:41:19 »
Hallo,

Und was fuer einen Fehler bekommst Du?

Prinzipiell kannst Du mit dieser Funktion auch Dateien/Ordner direkt auf C:
loeschen.


Andreas

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #5 am: 14.06.13 - 11:46:02 »
OLE: Automation object error

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #6 am: 14.06.13 - 11:46:41 »
Hier mein code:

   Dim fso As Variant 'FileSystemObject
   Set fso = createObject("Scripting.FileSystemObject")
   
   If fso.FolderExists(dirName) Then
      fso.DeleteFolder dirName, True
   End If

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #7 am: 14.06.13 - 11:51:21 »
Und dirName ist eine String-Variable?


Andreas

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #8 am: 14.06.13 - 11:54:36 »

Ja. Sorry hier die ganze Funktion:

Function deleteTmpPath(dirName As String)
   
   Dim fso As Variant 'FileSystemObject
   Set fso = createObject("Scripting.FileSystemObject")
   
   If fso.FolderExists(dirName) Then
      fso.DeleteFolder dirName, True
   End If
   
End Function

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #9 am: 14.06.13 - 12:11:13 »
Nicht das wir hier ein Rechte-Problem haben.
(ist erst einmal nur eine Vermutung)


Andreas

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #10 am: 17.06.13 - 08:55:44 »
Ja so kommt es mir eben auch vor. Denn es klappt nicht, egal welche Funktion ich benutze (auch die Dir-Fkt von Lotus Notes mag nicht...

Aber wo liegt das Problem? Rechte in Windows? Oder Rechte in Notes? Bin ja überall Admin...?!?!

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #11 am: 18.06.13 - 07:59:22 »
Hallo,

kann es sein, dass eine Datei aus dem Ordner noch von Notes oder einem anderen Programm im Zugriff ist - dann kann der Ordner auch nicht gelöscht werden (egal mit welchen Rechten).

Gruß

André

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #12 am: 18.06.13 - 09:02:01 »
Hallo Andre,

ja das ist gut möglich! Ich habe den temp-Ordner nämlich erstellt, um Dateien abzulegen, deren Inhalt in eine andere Datei kopiert wurden. Nach dem Vorgang möchte ich die temp-Dateien natürlich wieder löschen. Vielleicht ist da noch ein Handle drauf?

Set destDoc = StarDesktop.loadComponentFromURL("private:factory/swriter","_blank",0,args)
Set destText = destDoc.getText()
Set destCursor = destText.createTextCursor()
bausteinFile = convertToURL(tmpPath, tmpFile)
Call destCursor.insertDocumentFromUrl(bausteinFile, args)

Wobei bausteinFile im temp-Ordner liegt. Sie wird nicht explizit geladen, nur ins andere File geladen. Muss ich trotzdem irgendwas "aufräumen" bevor ich den Ordner lösche?

Mel

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #13 am: 18.06.13 - 10:24:15 »
Mal ne blöde Frage: Warum schlägst Du Dich mit einem FSO- Objekt rum, was eh nur unter Windows funktioniert, und u.U. in jeder Windows- Version anders, wenn Du einfach Standard LotusScript verwenden kannst?

Kill fileName
bzw.
rmDir directoryName

sind jeweils eine Zeile Code, und funktionieren auf jeder Plattform auf der der Domino läuft. Wenn Du dann in den Agenteneinstellungen die Sicherheit noch auf "Allow Restricted Operations" setzt, dann ist das alles gar kein Problem, und Du musst Dich nicht mit irgend einem Objekt rumschlagen...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #14 am: 19.06.13 - 09:04:20 »
Hallo Torsten,

du hast natürlich Recht. Ich hatte es auch erst mit Dir etc. implementiert bin da auf das gleiche Problem gestoßen. Dann dachte ich die Lösung ist FSO. Gefällt mir auch besser zum coden weil ich aus dem Java/C#-Umfeld komme und mir die Script-Funktionen von Lotus manchmal ziemlich viel Zeit zum Verstehen kosten :-) auch wenn sie dann am Ende sehr praktisch sind.

Wie gesagt, löschen kann ich das temp-Dir so oder so nicht :-(

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #15 am: 30.07.13 - 11:32:39 »
Die Dateien haben z.T. einen Schreibschutz! Wie kann ich diesen umgehen?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #16 am: 30.07.13 - 11:37:22 »
Hallo,

Ganz simple gesagt, wenn Du entsprechende Rechte hast, diesen ausschalten und die Dateien dann loeschen.


Andreas

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #17 am: 30.07.13 - 11:46:49 »
Übrigens

rmDir directoryName

bringt path/file access error

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #18 am: 30.07.13 - 11:47:59 »
Die einzelnen Dateien haben gar keinen Schreibschutz! Aber der Ordner den ich versuche zu löschen hat in den Eigenschaften das Kästchen ausgefüllt bei Schreibschutz.....

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verzeichnis mit Hilfe eines FSO löschen
« Antwort #19 am: 30.07.13 - 11:50:39 »
Und wo bitte besteht der Unterschied, ob ich das 'Flag' (Attribut) des Schreibschutzes
bei einem Ordner bzw. einer Datei setzen oder loeschen will?


Andreas

P.S.:
Im Uebrigen bewegen wir uns hier schon lange nicht mehr auf dem Gebiet der Notes/Domino-Programmierung.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz