Seite 1 von 1

[Gelöst] Datein Kopieren mit shell("cp...") und Variablen

Verfasst: Mo 4. Nov 2013, 14:34
von phreak1n
Guten Tag,

ich hab hier mal wieder ein für mich schier unlösbares Problem^^ und wolte mal fragen ob Ihr mir vielleicht nen netten Tip geben könntet.

Ich möchte eine Datei, dessen Pfad in der Datenbank gespeichert ist, an einen vorgegebenen Ort kopieren,dazu nehme ich einen Wert aus meiner Datenbank und verändere ihn ("file:///data/test_old/testx1.pdf" zu "/data/test_old/testx1.pdf"), danach setze ich ein "cp " vor und ein " /data/test/" nach dem Pfad in ein String. nach dem "cp" und vor dem Pfad hab ich ein Leerzeichen innerhalb der Anführungszeichen.

Der code sieht so aus:

Code: Alles auswählen

sub copy_file
	oform = thisComponent.drawpage.forms.MainForm.getbyname("SubForm")
	surl = oform.getstring(3)
	oShell = createUnoService("com.sun.star.system.SystemShellExecute")
	dim curl as string
	dim copy0 as string
	dim copy1 as string
	dim copy2 as string
	dim copy3 as string
	curl = Mid(surl(),8)
	copy1 = "cp " 
	copy2 = curl()
	copy3 = " /data/test/"
	copy0 = copy1()&copy2()&copy3()
	print surl()
	print curl()
	print copy0()
	rem	oShell.execute(copy0(),,0)
	rem	oShell.execute(cp,,curl() copy3())
	rem shell(cp,,curl() copy3())
	shell(copy0())
rem	shell("cp /data/test_old/testx1.pdf /data/test") 
end sub
Nun will er einfach nicht kopieren. Benutze ich den shell()-befehl falsch? Den String den ich mir im Makro zusammenbauen will hab ich in der letzten auskommentierten Zeile als ganze normalen text in die shell()-funktion gegeben und das funktioniert. Per "print copy0()" bekomme ich das gleiche angezeigt wie ich in die handgeschriebene Zeile geschrieben hab. Das ding mit der oShell() in dem Makro hab ich ausprobiert, weil die oShell schon in dem Makro das ich als ausgangsbasis für meins benutzt habe, drinne war, funktioniert aber auch nicht.
Hab ebenfals versucht "/usr/bin/cp" statt "cp" oder nur die curl() variable zu nutzen:

Code: Alles auswählen

shell("cp "&curl()&" /data/test/")
auch Hier kein Erfolg, ich verzweifle...

danke fürs lesen, calli

Re: Datein Kopieren mit shell("cp...") und Variablen

Verfasst: Mo 4. Nov 2013, 17:47
von karolus
Hallo
Möchtest du nicht lieber arbeiten mit

Code: Alles auswählen

...
file_access = createUnoService("com.sun.star.ucb.SimpleFileAccess")
' evtl zuerst neue[s] Verzeichnis erstellen
' file_access.createFolder(....)
file_access.copy( alter_pfad, neuer_pfad)
...
Karolus

Re: Datein Kopieren mit shell("cp...") und Variablen

Verfasst: Mo 4. Nov 2013, 17:53
von F3K Total
Hi,
da brauchst Du keine Shell, es gibt den Basic Befehl

Code: Alles auswählen

FileCopy(Source, Destination)
Siehe auch hier.

Gruß R

Re: Datein Kopieren mit shell("cp...") und Variablen

Verfasst: Di 5. Nov 2013, 13:33
von phreak1n
Danke Leute, sehr nett von euch.

Hätte nicht gedacht das ich mit LO-Basic direkt aufs Dateisystem zugreifen kann... wieder was gelernt.
Nun kann wieder fröhlich weiter probiert werden, ohne beinahedepressionen.

Danke für die schnelle und kompetente Hilfe, Ihr seid Klasse!
Calli