123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * @(#) dir.h 1.4 87/11/06 Public Domain.
- *
- * A public domain implementation of BSD directory routines for
- * MS-DOS. Written by Michael Rendell ({uunet,utai}michael@garfield),
- * August 1987
- *
- * Ported to OS/2 by Kai Uwe Rommel
- * Addition of other OS/2 file system specific code
- * Placed into the public domain
- */
- #define MAXNAMLEN 256
- #define MAXPATHLEN 256
- #define _A_RONLY 0x01
- #define _A_HIDDEN 0x02
- #define _A_SYSTEM 0x04
- #define _A_VOLID 0x08
- #define _A_DIR 0x10
- #define _A_ARCHIVE 0x20
- struct dirent
- {
- ino_t d_ino; /* a bit of a farce */
- int d_reclen; /* more farce */
- int d_namlen; /* length of d_name */
- char d_name[MAXNAMLEN + 1]; /* null terminated */
- /* nonstandard fields */
- long d_size; /* size in bytes */
- unsigned d_mode; /* DOS or OS/2 file attributes */
- unsigned d_time;
- unsigned d_date;
- };
- /* The fields d_size and d_mode are extensions by me (Kai Uwe Rommel).
- * The find_first and find_next calls deliver this data without any extra cost.
- * If this data is needed, these fields save a lot of extra calls to stat()
- * (each stat() again performs a find_first call !).
- */
- struct _dircontents
- {
- char *_d_entry;
- long _d_size;
- unsigned _d_mode, _d_time, _d_date;
- struct _dircontents *_d_next;
- };
- typedef struct _dirdesc
- {
- int dd_id; /* uniquely identify each open directory */
- long dd_loc; /* where we are in directory entry is this */
- struct _dircontents *dd_contents; /* pointer to contents of dir */
- struct _dircontents *dd_cp; /* pointer to current position */
- }
- DIR;
- extern DIR *opendir(const char *);
- extern struct dirent *readdir(DIR *);
- extern void seekdir(DIR *, long);
- extern long telldir(DIR *);
- extern void closedir(DIR *);
- #define rewinddir(dirp) seekdir(dirp, 0L)
- int GetFileMode(char *name);
- ulg GetFileTime(char *name);
- void SetFileTime(char *path, ulg stamp);
- char *getVolumeLabel(int drive, unsigned long *time, unsigned long *mode,
- time_t *utim);
- int IsFileNameValid(char *name);
- int IsFileSystemFAT(char *dir);
- void ChangeNameForFAT(char *name);
- char *GetLongNameEA(const char *name);
- char *GetLongPathEA(const char *name);
- void GetEAs(char *name, char **bufptr, size_t *size,
- char **cbufptr, size_t *csize);
- char *StringLower(char *);
|