AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi sysutils.FileSearch unter Windows2008R2x64
Thema durchsuchen
Ansicht
Themen-Optionen

sysutils.FileSearch unter Windows2008R2x64

Ein Thema von sven1810 · begonnen am 15. Apr 2011 · letzter Beitrag vom 15. Apr 2011
Antwort Antwort
sven1810

Registriert seit: 13. Mär 2005
12 Beiträge
 
#1

sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 10:32
Hallo,ich habe in einem Delphi Programm die Funktion sysutils.FileSearch benutzt.
Diese funktionierte bisher auch immer einwandfrei.
Nun möchte ich das Programm welches diese Funktion nutzt auch unter Windows2008R2x64 nutzen, doch liefert mir die Funktion nun ein anderes Ergebnis zurück.
Starte ich z.b. das Programm unter WindowsXP:
sysutils.FileSearch('test.txt', 'c:\') --> Ergebnis: c:\test.txt

unter Windows2008R2x64 erhalte ich dann:
sysutils.FileSearch('test.txt', 'c:\') --> Ergebnis: test.txt

Auf beiden Systemen ist die Datei vorhaben. Genügend Rechte sind auch vorhanden.

Hat jemand einen Tipp für mich?

Gruß

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 10:41
Das wird daran liegen, dass du auf Windows2008R2x64 dein Projekt im gleichen Verzeichnis liegen hast, wie die Datei.
Würdest du das bei WindowsXP machen, würd das gleiche kommen. Schau dir den Code von FileSearch an. Die erste Überprüfung wird ohne angegebene Verzeichnisse gemacht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 10:44
Ich habe mir gerade den Code von FileSearch angeschaut.
Zitat:
Delphi-Quellcode:
function FileSearch(const Name, DirList: string): string;
  ...
  Result := Name;
  if Result = 'then // nothing to do
    Exit;
  ...
  while True do
  begin
    if FileExists(Result) then Exit;
Falls die Datei also im aktuellen Verzeichnis gefunden wird, kommt lediglich der Dateiname zurück (sofern ich keinen Denkfehler mache). Du könntest nun also überprüfen, ob als Ergebnis ein kompletter Pfad zurückkommt und ggf. das aktuelle Verzeichnis davorschreiben, oder Du verwendest eine eigene Implementierung.

[edit] Zu spät, dafür ausführlicher (*grmpf* immer diese Haarbauern ) [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 10:46
Hallo,

ich habe mir gerade die FileSearch-Sourcen angeschaut. Kann es sein, dass bei dem WinServer2008-Versuch
  • Die Anwendung im Suchpfad liegt?
  • CurrentDir derzeit auf diesen Pfad zeigt, in dem du suchst?
Es gibt da eben diese Abbruchbedingung in FileSearch, wenn FileExists(DerDateiname) TRUE zurück gibt. Und dann würde auch wie von dir beschrieben nur der Dateiname zurück gegeben werden.

Gruß, Chris

[Edit]Wo kommt jetzt der DeddyH her [/Edit]
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules

Geändert von ChrisE (15. Apr 2011 um 10:47 Uhr) Grund: Roter Kasten
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 11:29
Welche Delphiversion nutzt du?
Und hast du mal vesucht die Delphi-Quellcodes zu debuggen?


spontan würde ich mal sagen, es liegt am Arbeitsverzeichnis deiner Anwendung.

Da wo "test.txt" rauskommt, dort existiert eine solche Datei im Arbeitsverzeichnis.

Zitat:
[Edit]Wo kommt jetzt der DeddyH her [/Edit]
Ich hätte wohl meine arbeit mal unterbrechen sollen und sofort hier antwortern
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
sven1810

Registriert seit: 13. Mär 2005
12 Beiträge
 
#6

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 11:32
Hallo, danke genau das ist es.
Ich starte das Programm aus dem Sendto Ordner. Also markiere Dateien und dann per Rechte Maustaste -> Sendto -> meinprogramm.

Somit hat sich der Verhalten von Windows geändert.
Das Problem hat ich mit setcurrentdir('anderes Verzeichnis') gelöst.

Gruß

Sven
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: sysutils.FileSearch unter Windows2008R2x64

  Alt 15. Apr 2011, 11:34
Hallo Sven,

du hättest auch mit <ergebnisstring> := ExpandFileName(<ergebnisString>); erreichen können, dass immer ein absoluter Pfad in deinem Ergebnisstring ist. Doch dass nur anbei.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz