static int _testCopyInvalidFileToDirectory(void) { CharString tempDir = _fileUtilitiesMakeTempDir(); CharString testFilename = newCharStringWithCString(TEST_FILENAME); CharString invalid = newCharStringWithCString("invalid"); convertRelativePathToAbsolute(testFilename, invalid); assertFalse(copyFileToDirectory(invalid, tempDir)); removeDirectory(tempDir); freeCharString(testFilename); freeCharString(tempDir); freeCharString(invalid); return 0; }
static int _testCopyFileToInvalidDirectory(void) { CharString tempFile = newCharString(); CharString testFilename = newCharStringWithCString(TEST_FILENAME); CharString invalid = newCharStringWithCString("invalid"); FILE *fp = fopen(TEST_FILENAME, "w"); assertNotNull(fp); fclose(fp); convertRelativePathToAbsolute(testFilename, tempFile); assertFalse(copyFileToDirectory(tempFile, invalid)); unlink(TEST_FILENAME); freeCharString(tempFile); freeCharString(testFilename); freeCharString(invalid); return 0; }
static int _testCopyFileToDirectory(void) { CharString tempDir = _fileUtilitiesMakeTempDir(); CharString tempFile = newCharString(); CharString testFilename = newCharStringWithCString(TEST_FILENAME); FILE *fp = fopen(TEST_FILENAME, "w"); assertNotNull(fp); fclose(fp); convertRelativePathToAbsolute(testFilename, tempFile); assert(copyFileToDirectory(tempFile, tempDir)); assert(removeDirectory(tempDir)); unlink(TEST_FILENAME); freeCharString(tempDir); freeCharString(tempFile); freeCharString(testFilename); return 0; }
void buildAbsolutePath(const CharString directory, const CharString file, const char* fileExtension, CharString outString) { const char* extension; CharString absoluteDirectory; if(directory == NULL || charStringIsEmpty(directory)) { logWarn("Attempt to build absolute path with empty directory"); return; } if(file == NULL || charStringIsEmpty(file)) { logWarn("Attempt to build absolute path with empty file"); return; } absoluteDirectory = newCharString(); if(isAbsolutePath(directory)) { charStringCopy(absoluteDirectory, directory); } else { convertRelativePathToAbsolute(directory, absoluteDirectory); } if(fileExtension != NULL) { // Ignore attempts to append the same extension as is already on the file extension = getFileExtension(file->data); if(extension != NULL && !strncasecmp(extension, fileExtension, strlen(extension))) { buildAbsolutePath(absoluteDirectory, file, NULL, outString); } else { snprintf(outString->data, outString->length, "%s%c%s.%s", absoluteDirectory->data, PATH_DELIMITER, file->data, fileExtension); } } else { snprintf(outString->data, outString->length, "%s%c%s", absoluteDirectory->data, PATH_DELIMITER, file->data); } freeCharString(absoluteDirectory); }