Im Prinzip mache ich es schon so, außer, dass ich die laufende App so 
verschiebe:

  dim f,dest as FolderItem
  dest=getfolderItem("Daten") // hier lagere ich die alte App, bis ich sie beim 
nächsten Start lösche
  f= new FolderItem 
  f=f.Child("Mac Euro Faktura.app")
  f.MoveFileTo dest

klar, der Benutzer könnte die App umbenannt haben... das ginge das mal schief

Gruß

Stefan


> Beim Löschen ist auch immer zu bedenken, dass Leute evtl. die App
> woanders hingelegt haben, z.B. Desktop, oder gar einen Symlink aus dem
> Programme-Ordner woanders hin angelegt haben. Daher lösche auf keinen
> Fall die App mit der Delete-Operation, sondern benutze z.B. einen
> AppleScript-Befehl, um den Finder zu bitten, die alte App in den
> Papierkorb zu legen. Denn sonst löscht du evtl. irgendwas anders und
> dann ist der Schaden ggf. gross.
> 
> Auch kann der User mehrere Kopien der App haben. Wenn der User die
> neue Version startet, woher soll die neue Version dann wissen, wo die
> alte App zu finden ist? Sicher nicht immer im Apps-Ordner!
> 
> Am Sichersten ist es wohl, wenn die _alte_ App rausfindet, wo sie
> liegt (App.ExecutablePath.Parent.Parent müßte gehen), und dann ein
> Shell-Script startet und dem Script mitteilt, wo die App liegt - das
> Shell-Script löscht dann die alte App und entpackt die neue an die
> SELBE Stelle. In dem Fall ist es relativ sicher, dass da nix Anderes
> gelöscht wird. Aber mache das nur für den .app-Ordner! Wenn du deine
> App aber z.B. als Ordner, der die App sowie andere Files enthält,
> auslieferst, dann komme bloss nicht auf die Idee, den gesamten Ordner
> zu ersetzen, denn Anwender tun dann oft ihre Daten auch in diesem
> Ordner ablegen, und die willst du sicher nicht mit löschen. Also
> tunlichst nur den .app-Ordner komplett löschen, aber keine Ordner, die
> drüberliegend sind, selbst wenn du die selbst damals angelegt hast.
> 
> Thomas
> 


Antwort per Email an