Removed platform-specific functions from Code/IO/itkIOCommon, fixed code to use kwsys/SystemTools
This commit is contained in:
parent
5e9b2b94da
commit
756653cbb8
|
@ -1016,6 +1016,29 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination)
|
|||
return true;
|
||||
}
|
||||
|
||||
// return size of file; also returns zero if no file exists
|
||||
unsigned long SystemTools::FileLength(const char* filename)
|
||||
{
|
||||
struct stat fs;
|
||||
if (stat(filename, &fs) != 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return fs.st_size;
|
||||
}
|
||||
}
|
||||
|
||||
int SystemTools::Strucmp(const char *s1, const char *s2)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
return _stricmp(s1,s2);
|
||||
#else
|
||||
return strcasecmp(s1,s2);
|
||||
#endif
|
||||
}
|
||||
|
||||
// return true if the file exists
|
||||
long int SystemTools::ModifiedTime(const char* filename)
|
||||
{
|
||||
|
@ -1042,6 +1065,45 @@ bool SystemTools::RemoveFile(const char* source)
|
|||
return unlink(source) != 0 ? false : true;
|
||||
}
|
||||
|
||||
char *SystemTools
|
||||
::RealPath(const char *path, char *resolved_path)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
char pathpart[itk::IOCommon::ITK_MAXPATHLEN];
|
||||
strcpy(pathpart,path);
|
||||
char fnamepart[itk::IOCommon::ITK_MAXPATHLEN];
|
||||
char *slash;
|
||||
|
||||
if((slash = strrchr(pathpart,'/')) == NULL)
|
||||
{
|
||||
slash = strrchr(pathpart,'\\');
|
||||
}
|
||||
|
||||
if(slash == NULL) // no path part, so just use current dir.
|
||||
{
|
||||
Getcwd(pathpart,sizeof(pathpart));
|
||||
strcpy(fnamepart,path);
|
||||
}
|
||||
else // change directory to path part, getcwd to find OS resolved path
|
||||
{
|
||||
*slash = '\0';
|
||||
strcpy(fnamepart,slash+1);
|
||||
|
||||
char savedir[itk::IOCommon::ITK_MAXPATHLEN];
|
||||
Getcwd(savedir,sizeof(savedir));
|
||||
Chdir(pathpart);
|
||||
Getcwd(pathpart,sizeof(pathpart));
|
||||
Chdir(savedir);
|
||||
}
|
||||
strcpy(resolved_path,pathpart);
|
||||
strcat(resolved_path,"/");
|
||||
strcat(resolved_path,fnamepart);
|
||||
return resolved_path;
|
||||
#else
|
||||
return realpath(path,resolved_path);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the file the given name. Searches the given path and then
|
||||
* the system search path. Returns the full path to the file if it is
|
||||
|
|
|
@ -100,6 +100,11 @@ public:
|
|||
*/
|
||||
static kwsys_std::string UpperCase(const kwsys_std::string&);
|
||||
|
||||
/**
|
||||
* do a case-independent string comparison
|
||||
*/
|
||||
static int Strucmp(const char *s1, const char *s2);
|
||||
|
||||
/**
|
||||
* Replace Windows file system slashes with Unix-style slashes.
|
||||
*/
|
||||
|
@ -123,6 +128,12 @@ public:
|
|||
/** Return true if a file exists in the current directory. */
|
||||
static bool FileExists(const char* filename);
|
||||
|
||||
static unsigned long FileLength(const char *filename);
|
||||
/**
|
||||
* given a (possibly) relative path, return the completely
|
||||
* qualified path to a file system entity
|
||||
*/
|
||||
static char *RealPath(const char *path, char *resolved_path);
|
||||
/**
|
||||
* Add the paths from the environment variable PATH to the
|
||||
* string vector passed in.
|
||||
|
|
Loading…
Reference in New Issue