Changeset 4032 in orxonox.OLD for orxonox/trunk/src/util
- Timestamp:
- May 4, 2005, 1:57:55 AM (20 years ago)
- Location:
- orxonox/trunk/src/util
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/util/resource_manager.cc
r3983 r4032 510 510 } 511 511 512 stat(tmpDirName, &status); 513 if (status.st_mode & (S_IFDIR 512 if(!stat(tmpDirName, &status)) 513 { 514 if (status.st_mode & (S_IFDIR 514 515 #ifndef __WIN32__ 515 | S_IFLNK516 | S_IFLNK 516 517 #endif 517 )) 518 { 519 delete tmpDirName; 520 return true; 521 } 522 else 523 { 524 delete tmpDirName; 525 return false; 526 } 518 )) 519 { 520 delete tmpDirName; 521 return true; 522 } 523 else 524 { 525 delete tmpDirName; 526 return false; 527 } 528 } 529 else 530 return false; 527 531 } 528 532 … … 534 538 bool ResourceManager::isFile(const char* fileName) 535 539 { 540 char* tmpFileName = ResourceManager::homeDirCheck(fileName); 541 // actually checks the File 536 542 struct stat status; 537 stat(fileName, &status); 538 if (status.st_mode & (S_IFREG 543 if (!stat(tmpFileName, &status)) 544 { 545 if (status.st_mode & (S_IFREG 539 546 #ifndef __WIN32__ 540 | S_IFLNK547 | S_IFLNK 541 548 #endif 542 )) 543 return true; 544 else 545 return false; 546 } 549 )) 550 { 551 delete tmpFileName; 552 return true; 553 } 554 else 555 { 556 delete tmpFileName; 557 return false; 558 } 559 } 560 else 561 { 562 delete tmpFileName; 563 return false; 564 } 565 } 566 567 bool ResourceManager::touchFile(const char* fileName) 568 { 569 char* tmpName = ResourceManager::homeDirCheck(fileName); 570 571 FILE* stream; 572 if( (stream = fopen (tmpName, "w")) == NULL) 573 { 574 PRINTF(1)("could not open %s fro writing\n", fileName); 575 return false; 576 } 577 578 delete tmpName; 579 } 580 581 bool ResourceManager::deleteFile(const char* fileName) 582 { 583 char* tmpName = ResourceManager::homeDirCheck(fileName); 584 unlink(tmpName); 585 delete tmpName; 586 } 587 588 char* ResourceManager::homeDirCheck(const char* name) 589 { 590 char* retName; 591 if (!strncmp(name, "~/", 2)) 592 { 593 char tmpFileName[500]; 594 #ifdef __WIN32__ 595 strcpy(tmpFileName, getenv("USERPROFILE")); 596 #else 597 strcpy(tmpFileName, getenv("HOME")); 598 #endif 599 retName = new char[strlen(tmpFileName)+strlen(name)]; 600 sprintf(retName, "%s%s", tmpFileName, name+1); 601 } 602 else 603 { 604 retName = new char[strlen(name)+1]; 605 strcpy(retName, name); 606 } 607 return retName; 608 } 609 610 547 611 548 612 /** -
orxonox/trunk/src/util/resource_manager.h
r3983 r4032 78 78 // utility functions of this class 79 79 static bool isDir(const char* directory); 80 static bool isFile(const char* directory); 80 static bool isFile(const char* fileName); 81 static bool touchFile(const char* fileName); 82 static bool deleteFile(const char* fileName); 81 83 82 84 private: … … 92 94 Resource* locateResourceByPointer(const void* pointer); 93 95 96 static char* homeDirCheck(const char* name); 94 97 }; 95 98
Note: See TracChangeset
for help on using the changeset viewer.