Verzeichnis ermitteln?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Verzeichnis ermitteln?

Beitrag von reiter »

Hallo,
Ich hab da mal ne Frage.
Mit opendialog kann man ja überall hin navigieren .
Jetzt meine Frage .. wenn ich in einem Verzeichnis bin was ich mit opendialog aufgerufen habe um ein Bild zu öffnen funktioniert das ja sehr gut. Aber wenn ich dem Ordner/ Verzeichnis noch andere Dateien sind die ich dann im Hintergrund kopieren möchte muss ich ja erstmal wissen in welchem Verzeichnis ich bin was ich mit opendialog geöffnet habe.
Wie könnte ich das raus finden...? In welchen Verzeichnis ich mich bewege? Mit currentDir ? das Anwendungsverzeichnis wäre ja DirectorySeparator aber eben nur ein Verzeichnis
Also ungefähr so..

Wenn du das Bild öffnest dann kopiere Datei 1, Datei 2, und Datei 3

Bei einem Verzeichnis geht das ja, aber wenn ich in verschiedene Verzeichnisse wechseln kann muss ich ja wissen in welchen Verzeichnis ich bin...
Also den Pfad ermitteln trifft es vielleicht besser damit ich dann auf die anderen Dateien in dem selben Verzeichnis zugriff habe

Code: Alles auswählen

procedure TForm1.BitBtnLokalClick(Sender: TObject);
var
Datei:  String;

begin
 
if OpenDialog1.Execute then
   begin
      Datei := OpenDialog1.FileName;
      imgext.Picture.LoadFromFile(opendialog1.FileName); das Bild wird angezeigt
 // hier weiss ich nicht in welchen Verzeichnis ich bin und hätte gern aus dem Verzeichnis was 3 weitere Dateien enthält kopiert
 // kann man den Pfad irgendwie rausfinden? kann ja immer ein anderes Verzeichnis sein
   end
else
   ShowMessage('nix ausgewählt...');

end; 
Zuletzt geändert von reiter am So 31. Mai 2020, 21:44, insgesamt 1-mal geändert.

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Verzeichnis ermitteln?

Beitrag von wennerer »


reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Verzeichnis ermitteln?

Beitrag von reiter »

danke für die Info, aber von da komm ich schon...
das problem was ich habe ist, wenn ich dann ein anderes Verzeichnis wähle brauch ich ja auch den Pfad
Zuletzt geändert von reiter am So 31. Mai 2020, 21:48, insgesamt 1-mal geändert.


reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Verzeichnis ermitteln?

Beitrag von reiter »

also das funktioniert nicht

Code: Alles auswählen

procedure TForm1.BitBtnLokalClick(Sender: TObject);
var
Datei:  String;

begin
 
if OpenDialog1.Execute then
   begin
      Datei := OpenDialog1.FileName;
      imgext.Picture.LoadFromFile(opendialog1.FileName); das Bild wird angezeigt
 // hier weiss ich nicht in welchen Verzeichnis ich bin und hätte gern aus dem Verzeichnis was 3 weitere Dateien enthält kopiert
 // kann man den Pfad irgendwie rausfinden? kann ja immer ein anderes Verzeichnis sein
 idFTP1.Put(OpenDialog1.FileName,eddirectory.Caption + ExtractFileDir(OpenDialog1.FileName), True);
   end
else
   ShowMessage('nix ausgewählt...');

end;

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Verzeichnis ermitteln?

Beitrag von wennerer »

Habe das eben getestet. Bei mir (Linux Mint) geht das:

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1 : TButton;
    Label1  : TLabel;
    Opendialog1 : TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure Oeffne(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Oeffne(Sender: TObject);
begin
  if OpenDialog1.Execute then Label1.Caption := ExtractFileDir(OpenDialog1.FileName);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  self.SetBounds(50,50,800,400);
  Button1 := TButton.Create(self);
  Button1.Parent:= self;
  Button1.SetBounds(10,10,100,25);
  Button1.Caption:='Öffne Dialog';
  Button1.OnClick:=@oeffne;

  Label1  := TLabel.Create(self);
  Label1.Parent:=self;
  Label1.AutoSize:=false;
  Label1.SetBounds(10,50,700,25);

  Opendialog1 := TOpenDialog.Create(self);

end;

end.

Viele Grüße
Bernd

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Verzeichnis ermitteln?

Beitrag von wennerer »

Hier noch das Projekt im Anhang.

Viele Grüße
Bernd
Dateianhänge
Pfad.zip
(64.14 KiB) 157-mal heruntergeladen

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Verzeichnis ermitteln?

Beitrag von reiter »

hallo bernd...
danke für das Beispiel
das hilft mir schon ich schau mal wie ich das mit dem Pfad für mich nutzen kann
wäre doch auch möglich die ganzen Dateien die in einem Verzeichnis sind in eine Listbox einzulesen?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Verzeichnis ermitteln?

Beitrag von Socke »

reiter hat geschrieben:
So 31. Mai 2020, 23:11
wäre doch auch möglich die ganzen Dateien die in einem Verzeichnis sind in eine Listbox einzulesen?
FindAllFiles ist dein Freund!
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: Verzeichnis ermitteln?

Beitrag von reiter »

vielen Dank, schau ich mir Morgen an...

Antworten