Exe vom Suchpfad ausschließen

13/12/2007 - 08:48 von Mario Neudeck | Report spam
Hallo,

folgendes geht völlig in die Hose, da die Datei "open.bmp" auch in der
Exe vorhanden ist:

m.cFile = GETFILE()
IF !EMPTY(m.cFile)
WAIT WINDOW m.cFile
&& c:\bilder\open.bmp

m.cTmp = ADDBS(SYS(2023)) + JUSTFNAME(m.cFile)
COPY FILE (m.cFile) TO (m.cTmp)
&& Fehler 1: Datei "p:\evshare.5100\bmp\open.bmp" ist nicht vorhanden
&& p:\evshare.5100: Entwicklungsverzeichnis
ENDIF

Betroffen sind z.B. noch FSEEK() und FSIZE().
Kann ich verhindern, daß FoxPro in der Exe sucht?

Danke,
Mario
 

Lesen sie die antworten

#1 Olaf Doschke
16/12/2007 - 15:51 | Warnen spam
Hallo Mario,

kann ich so nicht so nachvollziehen.
Ich weiß das FILE() mit in der EXE sucht, aber
nicht als erstes, nicht als einzigesn und erst einen Fehler
wirft, wenn die Datei weder auf Platte noch in der
EXE greifbar sind.

Zugriffsrechte? Datei oder Verzeichnis hidden?

Getfile könnte die Datei dann noch zur Auswahl
anzeigen, aber COPY nicht kopieren, auch wenn
die Datei woanders exklusiv offen ist, z.B.
Grafikprogramm...

Die EXE ausschließen kann man nicht. Dagegen,
daß evtl. eine Datei in der EXE gefunden und
kopiert werden könnte, hilft z.B. Dateinamen
per ADIR(aDummy,m.cFile)>0 zu checken, denn
ADIR sucht nur auf Platte, zwar uch auf virtuellen
Laufwerken aber definitiv nicht in der EXE.

insofern:

m.cFile = GETFILE()
IF ADIR(aDummy,m.cFile)>0
m.cTmp = ForcePath(m.cFile,GetEnv("TMP"))
COPY FILE (m.cFile) TO (m.cTmp)
ENDIF

Tschüß, Olaf.

Ähnliche fragen