From: Jeroen <jv...@cf...> - 2001-03-09 16:42:13
|
On Friday 09 March 2001 09:42, you wrote: > > We have a small problem when running FOX programs on > > both WIN32 and Linux... It has to do with the usage > > of '/' and '\' in filenames... > > Did you already know about the following macro definitions in fxdefs.h? > > // Path separator > #ifdef WIN32 > #define PATHSEP '\\' > #define PATHSEPSTRING "\\" > #define PATHLISTSEP ';' > #define PATHLISTSEPSTRING ";" > #else > #define PATHSEP '/' > #define PATHSEPSTRING "/" > #define PATHLISTSEP ':' > #define PATHLISTSEPSTRING ":" > #endif > > The portable way to construct your filenames would be something like: > > FXString join(const FXString& path, const FXString& file) { > return path + PATHSEPSTRING + file; > } > > Hope this helps, > > Lyle The above #define's are useful to use in your programs. Nevertheless, there are other idiosyncracies in the UNIX and WIN32 file systems, and I'm trying to offer a full complement of API's that operate on file names and files in FXFile. For portability (and also ease of use for that matter), I *strongly* urge you to use the API's of FXFile to manipulate file names. FXFile knows, for example, how to parse over drive letters, UNC (Uniform Naming Convention) file names, and so on and so forth. Using the API's in FXFile, you can pick filenames apart, build them, manipulate drive letters, even recursively copy directories. And it all works on both Windows as well as Unix. In your particular example, you can create full pathnames using FXString fullpath=FXFile::absolute(dirpart,filenamepart); Hope this helps, Jeroen P.S. We still have some old file-functions named fxblabla() in fxutils.cpp; usage of these functions should be phased out in your code, as these are not so aware of the Windows/Unix differences, and they don't work on FXString's. P.P.S. If you feel an important function is missing in FXFile, feel free to let me know, or better yet, send me code! P.P.P.S. FXURL will eventually do for URL's what FXFile does for files. -- +-------------------------------+--------------------------------------------+ | E-Mail : jv...@cf... | The FOX Platform Independent GUI Toolkit: | | USMail : 215 Wynn Drive, | | | Huntsville, AL 35805 | Official Site: | | Phone : (256) 726-4820 | http://www.cfdrc.com/FOX/fox.html | | Fax : (256) 726-4806 | ftp://ftp.cfdrc.com/pub/FOX | | WWW : http://www.cfdrc.com | | +-------------------------------+--------------------------------------------+ | Copyright (C) 10:00 03/ 9/2001 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |