| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: Ordner mit Inhalt löschen (1701 mal gelesen)
|
Heini_K Mitglied

 Beiträge: 34 Registriert: 26.09.2006 Catia V5R14SP4/R16 HP- Unix- Workstation
|
erstellt am: 22. Dez. 2006 14:44 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Bei mir funktioniert die Methode: CATIA.FileSystem.DeleteFolder "I:\MyTestFolder" nur, wenn der entsprechende Ordner leer ist. Sonst bekomme ich eine Fehlermeldung (sowohl bei CATScript als auch CAT VBA). In der Hilfe steht jedoch explizit, dass der Ordner in jedem Fall gelöscht werden sollte. Danke im Voraus und schöne Feiertage! ------------------ Gruß, Matthias [Diese Nachricht wurde von Heini_K am 22. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
 
 Beiträge: 157 Registriert: 21.04.2006 2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005 Adminrechte
|
erstellt am: 22. Dez. 2006 14:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Heini_K
|
Heini_K Mitglied

 Beiträge: 34 Registriert: 26.09.2006 Catia V5R14SP4/R16 HP- Unix- Workstation
|
erstellt am: 22. Dez. 2006 14:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo Ole, Nein, habe ich nicht. A propos, wie setzt man denn den Zusatz [,force] richtig ein, wenn ich: CATIA.FileSystem.DeleteFolder "I:\MyTestFolder", True schreibe, kommt immer die Meldung "wrong number of arguments".
------------------ Gruß, Matthias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
crow73 Mitglied Maschinenbauingenieur

 Beiträge: 64 Registriert: 07.04.2003 CATIA V5R19 SP9 Hotfix 69 Core i7 16 GB RAM W7
|
erstellt am: 02. Jan. 2007 13:35 <-- editieren / zitieren --> Unities abgeben:          Nur für Heini_K
Hallo Heini_K, bekomme auch die gleichen Fehlermeldungen wie du! Habe leider noch keine Erfahrungen mit CATIA V5 und Programmierung aber hast du schon mal versucht erst mit "DeleteFile" oder besser mit dem "Kill" Befehl alle Files und danach den Ordner zu löschen? Vielleicht gehts einfacher aber das müßte funktionieren: Sub remdir() Kill "C:\tmp\Neuer Ordner\*.*" ChDir ("C:\tmp\") RmDir "Neuer Ordner" End Sub Gruß
Crow73 [Diese Nachricht wurde von crow73 am 02. Jan. 2007 editiert.] [Diese Nachricht wurde von crow73 am 02. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heini_K Mitglied

 Beiträge: 34 Registriert: 26.09.2006 Catia V5R14SP4/R16 HP- Unix- Workstation
|
erstellt am: 03. Jan. 2007 10:39 <-- editieren / zitieren --> Unities abgeben:         
Hallo crow73, Zunächst einmal Danke für Deine Antwort. Das Problem scheint mit dem FileSystemObject zu tun zu haben. Erzeuge ich mir nämlich ein eigenes FileSystemObjet: ------------ Dim FSO As FileSystemObject Set FSO = CreateObject("Scripting.FileSystemObject") FSO.DeleteFolder Path, True ------------ Kann ich auch Ordner mit Inhalt problemlos löschen. Nur leider haben wir hauptsächlich Unix- Workstations im Einsatz und darauf funktioniert "CreateObject("Scripting.FileSystemObject")" nicht, da Unix kein ActiveX hat. [Diese Nachricht wurde von Heini_K am 03. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlausJ Mitglied
   
 Beiträge: 1336 Registriert: 17.03.2003 CATIA V4.2.4 Ref 2 CATIA V5R16SP7 AIX 5.3 Windows 2000 und XP
|
erstellt am: 03. Jan. 2007 12:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Heini_K
Hallo Matthias, wenn Du UNIX hast, dann existiert das Objekt "I:\MyTestFolder" natürlich nicht. Du mußt mit den Verzeichnisnamen natürlich zwischen Windows und UNIX trennen. ------------------ Nichts ändern ist langweilig !! Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bobby_Joe2001 Mitglied Konstrukteur

 Beiträge: 81 Registriert: 15.01.2006
|
erstellt am: 03. Jan. 2007 12:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Heini_K
Hallo, hab dir was kleines gebastelt, das hier funktioniert bei mir (als CATVbs getestet): Code:
Sub CATMain() Set FS = CATIA.FileSystem Set MyFolder = FS.GetFolder("Z:\loesch_mich") For Each MyFile In MyFolder.Files FS.DeleteFile MyFile.Path Next CATIA.FileSystem.DeleteFolder MyFolder.Path End Sub
Allerdings nicht bei schreibgeschützten Datein. Noch ein gesundes neues Jahr! Gruß ------------------ Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen. Konrad Adenauer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heini_K Mitglied

 Beiträge: 34 Registriert: 26.09.2006 Catia V5R14SP4/R16 HP- Unix- Workstation
|
erstellt am: 03. Jan. 2007 13:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo, @Klaus: Mit dem Objekt meinte ich das FileSystemObject, welches ich unter Windows mit "CreateObject("Scripting.FileSystemObject")" erzeugen kann. Bei diesem Objekt funktioniert die Methode "DeleteFolder" nämlich auch für Ordner mit Inhalt (sowohl Dateien als auch UnterOrdnern). Bei dem FileSystemObject was CATIA mir zurückgibt, funktioniert die Methode nur, wenn der Ordner keinen Inhalt hat. @Bobby_Joe2001: Sorry, ich habe mich nicht genau genug ausgedrückt, ich meinte mit Inhalt sowohl Dateien als auch Ordner. Wenn der Ordner nur Dateien enthält funktioniert Dein Skript, sind auch UnterOrdner vorhanden dann nicht. ....So wie es bis jetzt aussieht, ist man auf UNIX wohl darauf angewiesen die Ordner- Struktur rekursiv zu durchlaufen und evtl. vorhandene Dateien und anschließend die Ordner, in denen sie sich befanden, zu löschen. ------------------ Gruß, Matthias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bobby_Joe2001 Mitglied Konstrukteur

 Beiträge: 81 Registriert: 15.01.2006
|
erstellt am: 03. Jan. 2007 14:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Heini_K
Zitat: Original erstellt von Heini_K:
....So wie es bis jetzt aussieht, ist man auf UNIX wohl darauf angewiesen die Ordner- Struktur rekursiv zu durchlaufen und evtl. vorhandene Dateien und anschließend die Ordner, in denen sie sich befanden, zu löschen.
oder du benutzt UNIX-Befehle, die du über ExecuteProcess ausführst. Sollte eigentlich auch funktionieren. ------------------ Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen. Konrad Adenauer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |