Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Directory Tree kopieren...

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Directory Tree kopieren... (3058 mal gelesen)
marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 15. Mai. 2007 21:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leutz,
ich suche nach einer Möglichkeit oder bereits fertigem Modul zum kopieren eines kompletten Verzeichnis Trees. Natürlich inklusive aller enthaltener Files und SubFolder & natürlich auch über UNC Pfade.
Und das wiederum OHNE WindowsScriptingHost. Ich benötige eine Funktion die nur VLisp/Lisp benötigt. Habe aber bisher leider nix gefunden.
Vielleicht hat ja hier einer der Anwesenden etwas ähnliches schon gesehen?

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 16. Mai. 2007 08:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Fertig habe ich auch nix aber ich schau nochmal nach. Auf alle Fälle kann es etwas Dauern, bis alle Unterverzeichnisse ermittelt und zu 'ner Liste zusammengestellt wurden.
Ich meine ich hatte mal irgendw sowas.
Vielleicht hilft dir aber auch daserstmal weiter.
Alternativ kannsde ja mal über _shell und xcopy nachdenken
naja und doslib ist klaube auch noch mit sowas bestückt

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADchup
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von CADchup an!   Senden Sie eine Private Message an CADchup  Schreiben Sie einen Gästebucheintrag für CADchup

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 16. Mai. 2007 08:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hi,

Zitat:
Original erstellt von marc.scherer:

Und das wiederum OHNE WindowsScriptingHost. Ich benötige eine Funktion die nur VLisp/Lisp benötigt.

ohne WindowsScriptingHost gibt's was. Dann allerdings über das FilesystemObject.   

Alternativ müsste was über DOSLib gehen.

Stellt sich die Frage, warum du die Windows-API außen vor lassen willst?


Gruß
CADchup

------------------
CADmaro.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 16. Mai. 2007 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hallo Marc,
vielleicht ist das folgende was für Dich (prüfen musst Du selber, ich habe nur einen kurzen Testlauf gemacht)
Code:

;;;Bei den Pfadangaben doppelter Backslash am Ende!!!
;;;z.B. (folder_copy "c:\\temp\\" "c:\\test\\"
(defun folder_copy  (pfad1 pfad2 / A B liste)
  (setq liste (vl-sort (JB_folder_copy:search liste pfad1 1)
      '(lambda (e1 e2) (< (car e1) (car e2)))))
;;;Directory's erstellen
  (mapcar
    '(lambda (A)
      (vl-mkdir (strcat pfad2 (substr (cadr A) (+ 1 (strlen pfad1))))))
    (vl-remove-if '(lambda (B) (= (car B) 0)) liste))
;;;Files
  (mapcar '(lambda (A)
    (vl-file-copy
      (cadr A)
      (strcat pfad2 (substr (cadr A) (+ 1 (strlen pfad1))))))
  (vl-remove-if '(lambda (B) (/= (car B) 0)) liste)))

(defun JB_folder_copy:search  (liste pfad1 i / A B files)
;;;FILES
  (if (setq files (vl-directory-files pfad1 nil 1))
    (mapcar '(lambda (A)
      (setq liste (cons (list 0 (strcat pfad1 A)) liste)))
    (vl-directory-files pfad1 nil 1)))
  (setq liste (cons (list i pfad1) liste))
  (mapcar '(lambda (A)
    (setq i (+ i 1))
    (setq liste
    (JB_folder_copy:search liste (strcat pfad1 A "\\") i)))
  (vl-remove-if
    '(lambda (B) (member B '("." "..")))
    (vl-directory-files pfad1 nil -1)))
  liste)


------------------
viele Grüße

Jörn

[Diese Nachricht wurde von joern bosse am 16. Mai. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 16. Mai. 2007 10:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

 
Zitat:
Original erstellt von CADchup:
Stellt sich die Frage, warum du die Windows-API außen vor lassen willst?

Habbich mir doch gedacht, dass Du diese Frage stellen würdest...
Ganz einfach: Weil ich das Ding aus der acaddoc.lsp aufrufen will und dort möglichst wenig Overhead und advanced Schnickschnack drinnen haben will...

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
   
   

[Diese Nachricht wurde von marc.scherer am 16. Mai. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 16. Mai. 2007 10:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von joern bosse:
(prüfen musst Du selber, ich habe nur einen kurzen Testlauf gemacht)


Na DAS ist doch EHRENSACHE  !
Danke Dir!

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADchup
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von CADchup an!   Senden Sie eine Private Message an CADchup  Schreiben Sie einen Gästebucheintrag für CADchup

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 16. Mai. 2007 10:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hi,

Zitat:
Original erstellt von marc.scherer:
[QUOTE]Weil ich das Ding aus der acaddoc.lsp aufrufen will und dort möglichst wenig Overhead und advanced Schnickschnack drinnen haben will...

du willst bei jeder Zeichnung, die geöffnet wird, Dateien und Ordner prüfen und ggf. kopieren lassen (können)? Okaaaaay...  Dann verstehe ich die Overhead-Sache.
Als User fänd ich es allerdings nicht so prickelnd, wenn ich nur mal schnell eine DWG aufmachen würde, um etwas nachzusehen und ich dann u. U. warten müsste, bis ein paar Datei-Updates gelaufen sind. Auch wenn es vielleicht nur Sekunden sind, um die es hier geht - die können sehr lang sein, wenn man's eilig hat.
Du willst es also eigentlich über die acad.lsp machen. 

Dann kannst du es aber auch gleich Lisp-los von den ITlern ins Netinstall nehmen lassen und der Acad-Start bleibt so, wie er ist.


Gruß
CADchup

------------------
CADmaro.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 16. Mai. 2007 10:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Heinzi,
vielen Dank für Deine Gedanken und Ideen zu dem Thema.
Was ich mich aber Frage ist: Warum glauben Du und das Wiesel eigentlich das ich mir nicht genau überlegt habe was ich tue?     
Natürlich kopiere ich NICHT bei jedem öffnen einer Datei irgendwelche Dateien. Ich verfolge da eine bestimmte Strategie, wir können das ja mal auf der nexten cad.pro erörtern ;-)
Danke Dir trotzdem, ich verstehe Dich natürlich auch: Manchmal erscheinen einem Fragen anderer eben ein wenig obscur... Geht mir ja auch manchmal so ;-)

Und NEIN, ich will es BEWUßT NICHT über die acad.lsp machen!
Ich pflege doch nicht zwei Datein, wenn ich nur eine benötige...

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
   
   

[Diese Nachricht wurde von marc.scherer am 16. Mai. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADchup
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von CADchup an!   Senden Sie eine Private Message an CADchup  Schreiben Sie einen Gästebucheintrag für CADchup

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 16. Mai. 2007 11:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von marc.scherer:
Was ich mich aber Frage ist: Warum glauben Du und das Wiesel eigentlich das ich mir nicht genau überlegt habe was ich tue?       
Natürlich kopiere ich NICHT bei jedem öffnen einer Datei irgendwelche Dateien. Ich verfolge da eine bestimmte Strategie, wir können das ja mal auf der nexten cad.pro erörtern ;-)

Türlich bin ich davon ausgegangen, dass du dir genau überlegst, was du machst. Bist doch einer von den Guten. 
Ich weiß, dass wir in dieser Sache unterschiedlicher Meinung waren und sind, wir werden das also unbedingt auf der Messe ausdiskutieren müssen! 


Gruß
CADchup

------------------
CADmaro.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 16. Mai. 2007 11:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,
Jörn, Du hast es. Super klasse, es läuft exzellent, Thanx!!!

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 16. Mai. 2007 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

...und hier meine abgewandelte Version von Jörns Code:
(ich habe noch zwei interne Routinen eingebaut die die Argumentübergabe variabler gestalten, "//Server/Freigabe" ist genauso möglich wie "//Server/Freigabe/" oder "\\\\Server\\Freigabe" oder "\\\\Server\\Freigabe\\")
Code:

;|
Subroutine zum Kopieren ganzer Trees.
Original-Funktion von Jörn Bosse veröffentlicht über cad.de Forum

Wichtig für die Funktions ist auf jeden Fall der Doppelbackslash am Ende der Pfadangabe!
Vorgeschaltete Funktion hängt den Backslash auf jeden Fall an, falls er
in den Argumenten nicht verwendet wurde.
Die Form des Pfaddelimiters ist auch egal, eine vorgeschaltete Funktion
ersetzt Slashes mit Backslashes.
Ansonsten keinerlei Errorhandling!!!
Argumente:
STRSOURCE = Quellordner der zu kopieren ist
STRTARGET = Zielordner der Kopiererei
|;
(defun DT:FOLDER_COPY (STRSOURCE STRTARGET / A B LISTE)
  (defun DT:TRANSLATEPATHDELIMITTERS (STRPATH STRNEWDEL STROLDDEL /)
    (while (vl-string-search STROLDDEL STRPATH)
      (setq STRPATH (vl-string-subst STRNEWDEL STROLDDEL STRPATH))
    )
    STRPATH
  )
  (defun DT:APPENBACKSLASH (STRPATH /)
    (if (not (= (substr STRPATH (strlen STRPATH) 1) "\\"))
      (setq STRPATH (strcat STRPATH "\\"))
      STRPATH
    )
  )
  (setq STRSOURCE (DT:APPENBACKSLASH
    (DT:TRANSLATEPATHDELIMITTERS STRSOURCE "\\" "/")
  )
STRTARGET (DT:APPENBACKSLASH
    (DT:TRANSLATEPATHDELIMITTERS STRTARGET "\\" "/")
  )
LISTE   (vl-sort (DT:FOLDER_COPY:SEARCH LISTE STRSOURCE 1)
  '(lambda (E1 E2) (< (car E1) (car E2)))
  )
  )
  ;;Directory's erstellen
  (mapcar
    '(lambda (A)
      (vl-mkdir
(strcat STRTARGET (substr (cadr A) (+ 1 (strlen STRSOURCE))))
      )
    )
    (vl-remove-if '(lambda (B) (= (car B) 0)) LISTE)
  )
  ;;Files
  (mapcar
    '(lambda (A)
      (vl-file-copy
(cadr A)
(strcat STRTARGET (substr (cadr A) (+ 1 (strlen STRSOURCE))))
      )
    )
    (vl-remove-if '(lambda (B) (/= (car B) 0)) LISTE)
  )
)

(defun DT:FOLDER_COPY:SEARCH (LISTE PFAD1 I / A B FILES)
  ;;FILES
  (if (setq FILES (vl-directory-files PFAD1 NIL 1))
    (mapcar '(lambda (A)
      (setq LISTE (cons (list 0 (strcat PFAD1 A)) LISTE))
    )
    (vl-directory-files PFAD1 NIL 1)
    )
  )
  (setq LISTE (cons (list I PFAD1) LISTE))
  (mapcar '(lambda (A)
    (setq I (+ I 1))
    (setq LISTE
    (DT:FOLDER_COPY:SEARCH LISTE (strcat PFAD1 A "\\") I)
    )
  )
  (vl-remove-if
    '(lambda (B) (member B '("." "..")))
    (vl-directory-files PFAD1 NIL -1)
  )
  )
  LISTE
)



...

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz