Anmelden

View Full Version : Typ eines IFS-Root-Objektes ermitteln



HeymannJ
26-02-09, 14:05
Hallo *All,

gibt es eine andere Möglichkeit den Typ bzw. die Art eines Objektes (DIR, File usw.) im IFS zu ermitteln als mit DSPLNK und Ausgabe mit *PRINT und copy in PF

vielen Dank im voraus.

Fuerchau
26-02-09, 14:50
Am einfachsten ist hier
CHKOUT
Wenn es ein Verzeichnis ist, gibts eine CPFA0DA.
Wenn das Objekt nicht da ist, gibts CPFA0A9.

Ansonsten ggf. andere Meldungen wegen Berechtigung.

Klappt der CHKOUT, wars eine Datei.

Anschließend CHKIN zum Aufheben der Sperre nicht vergessen.

Mehr kann man auch mit API's im IFS nicht feststellen.

Zehetner
13-03-09, 08:37
Dazu gibt es APIs wie opendir, readdir, cloesedir, stat, ...

Zehe

Rafer19
16-03-09, 06:37
ich bekomme in ein IFS-Verzeichnis eine Datei, Dateiname besteht aus Tages- und Zeitstempel, gestellt. Ändert sich also immer!!
Nach Aussage von Fuerchau kann ich mit CHKOUT feststellen, ob die Datei vorhanden ist...
Kann ich auch den Dateinamen für den CPYFRMIMPF ermitteln??

Grüße
Ralph

Fuerchau
16-03-09, 08:59
Hierzu sind entweder IFS-API's (C-Routinen) erforderlich oder die QSHELL.

Per QSHELL CMD('cd /Path;ls >/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYFILE.MBR') lassen sich die Namen in eine Datei ausgeben.

Die Datei ist vorher mit CRTPF MYLIB/MYFILE RCDLEN(80) zu erstellen.

pwrdwnsys
16-03-09, 11:01
Oder wenns ein eine Tasse JAVA-Kaffee sein darf :

File f = new File(dirname);
if (f.isDirectory()) {
..... do something...
}

Rafer19
17-03-09, 06:25
.wie nicht anders zu erwarten, hat es funktioniert... Danke Baldur

Rafer19
18-03-09, 06:38
möchte mehrer CSV-Dateien aus dem Root-Verzeichnis in eine PF-File einlesen.
Habe mit Qshell die Dateinamen in eine PF gestellt.
Lese dann die Dateinnamen in eine CL-Variable (&PARM) aus und benutze dann CPYFRMIMPF FROMSTMF('/home/&PARM').... geht nicht!!!

ich denke, die Variable wird nicht aufgelöst... oder muss ich den gesamten Pfad in eine Variable schreiben??

Khholm
18-03-09, 08:39
den gesamten Pfad in einer weiteren CL Variablen zusammensetzen, das &PARM wird so nicht aufgelöst, und dann etwa so:

CPYFRMIMPF FROMSTMF(&InIFS)

Karl-Heinz