diff -r 8dd670a9f34f -r 53d1ab72f5bc imgtools/romtools/rofsbuild/fsnode.cpp --- a/imgtools/romtools/rofsbuild/fsnode.cpp Mon Sep 13 14:04:04 2010 +0100 +++ b/imgtools/romtools/rofsbuild/fsnode.cpp Wed Oct 13 16:27:55 2010 +0800 @@ -25,19 +25,6 @@ #include - -#ifdef __LINUX__ -#include -#include -#include -#define SPLIT_CHAR '/' -#else -#include -#include //TODO: check under MinGW4 + stlport 5.2 -#include -#define SPLIT_CHAR '\\' -#endif - using namespace std; const TUint KBytesPerEntry = 13 ; @@ -105,85 +92,6 @@ free(iPCSideName); } -TFSNode* TFSNode::CreateFromFolder(const char* aPath,TFSNode* aParent) { - - int len = strlen(aPath); -#ifdef __LINUX__ - DIR* dir = opendir(aPath); - if(dir == NULL) { - cout << aPath << " does not contain any subfolder/file.\n"; - return aParent; - } - if(!aParent) - aParent = new TFSNode(NULL,"/",ATTR_DIRECTORY); - dirent* entry; - struct stat statbuf ; - char* fileName = new(nothrow) char[len + 200]; - if(!fileName) return NULL ; - memcpy(fileName,aPath,len); - fileName[len] = SPLIT_CHAR; - while ((entry = readdir(dir)) != NULL) { - if(strcmp(entry->d_name,".") == 0 || strcmp(entry->d_name,"..") == 0) - continue ; - strcpy(&fileName[len+1],entry->d_name); - stat(fileName , &statbuf); - TFSNode* pNewItem = new TFSNode(aParent,fileName,S_ISDIR(statbuf.st_mode) ? ATTR_DIRECTORY : 0); - pNewItem->Init(statbuf.st_ctime,statbuf.st_atime,statbuf.st_mtime,statbuf.st_size); - if(S_ISDIR(statbuf.st_mode)){ - CreateFromFolder(fileName,pNewItem); - } - } - delete []fileName ; - closedir(dir); -#else - struct _finddata_t data ; - memset(&data, 0, sizeof(data)); - char* fileName = new(nothrow) char[len + 200]; - if(!fileName) return NULL ; - memcpy(fileName,aPath,len); - fileName[len] = SPLIT_CHAR; - fileName[len+1] = '*'; - fileName[len+2] = 0; - intptr_t hFind = _findfirst(fileName,&data); - - if(hFind == (intptr_t)-1 ) { - cout << aPath << " does not contain any subfolder/file.\n"; - delete []fileName; - return aParent; - } - if(!aParent) - aParent = new TFSNode(NULL,"/",ATTR_DIRECTORY); - - do { - if(strcmp(data.name,".") == 0 || strcmp(data.name,"..") == 0) - continue ; - - strcpy(&fileName[len+1],data.name); - TUint8 attr = 0; - if(data.attrib & _A_SUBDIR) - attr |= ATTR_DIRECTORY; - if(data.attrib & _A_RDONLY) - attr |= ATTR_READ_ONLY ; - if(data.attrib & _A_HIDDEN) - attr |= ATTR_HIDDEN ; - if(data.attrib & _A_SYSTEM) - attr |= ATTR_SYSTEM ; - if(data.attrib & _A_ARCH) - attr |= ATTR_ARCHIVE; - TFSNode* pNewItem = new TFSNode(aParent,data.name,attr,fileName); - pNewItem->Init(data.time_create,data.time_access,data.time_write,data.size); - if(data.attrib & _A_SUBDIR){ - CreateFromFolder(fileName,pNewItem); - } - - } while(-1 != _findnext(hFind, &data)); - delete []fileName ; - _findclose(hFind); -#endif - - return aParent; -} - /** GenerateBasicName : Generate the short name according to long name * * algorithm :