void setTimeValue( char *searchDir ) { void setFileTime( char *, time_t * ) ; time_t *newOldTime, *newOlderTime, *newOldestTime, *newExactTime ; char olderTime[] = "01:00:00 2002/01/01" ; char oldestTime[] = "01:00:00 2001/01/01" ; char exactTime[] = "01:00:01 2002/01/01" ; char testFile[BUFFER_SIZE] = { '\0' } ; newOldTime = ( time_t * ) malloc( sizeof( time_t ) ) ; newOlderTime = ( time_t * ) malloc( sizeof( time_t ) ) ; newOldestTime = ( time_t * ) malloc( sizeof( time_t ) ) ; newExactTime = ( time_t * ) malloc( sizeof( time_t ) ) ; *newOldTime = time( NULL ) ; *newOlderTime = parsedate( olderTime, NULL ) ; *newOldestTime = parsedate( oldestTime, NULL ) ; *newExactTime = parsedate( exactTime, NULL ) ; _debug( __FILE__, __LINE__, 5, "newOldTime is %s", ctime( newOldTime ) ) ; _debug( __FILE__, __LINE__, 5, "newOlderTime is %s", ctime( newOlderTime ) ) ; _debug( __FILE__, __LINE__, 5, "newOldestTime is %s", ctime( newOldestTime ) ) ; _debug( __FILE__, __LINE__, 5, "newExactTime is %s", ctime( newExactTime ) ) ; sprintf( testFile, "%s/%s", searchDir, "testTIME.txt" ) ; setFileTime( testFile, newExactTime ) ; sprintf( testFile, "%s/%s", searchDir, "testID1.c" ) ; setFileTime( testFile, newOldestTime ) ; sprintf( testFile, "%s/%s", searchDir, "testDATE1.c" ) ; setFileTime( testFile, newOldestTime ) ; sprintf( testFile, "%s/%s", searchDir, "testNAME1.c" ) ; setFileTime( testFile, newOldestTime ) ; sprintf( testFile, "%s/%s", searchDir, "testID2.c" ) ; setFileTime( testFile, newOlderTime ) ; sprintf( testFile, "%s/%s", searchDir, "testDATE2.c" ) ; setFileTime( testFile, newOlderTime ) ; sprintf( testFile, "%s/%s", searchDir, "testNAME2.c" ) ; setFileTime( testFile, newOlderTime ) ; sprintf( testFile, "%s/%s", searchDir, "testID3.c" ) ; setFileTime( testFile, newOldTime ) ; sprintf( testFile, "%s/%s", searchDir, "testDATE3.c" ) ; setFileTime( testFile, newOldTime ) ; sprintf( testFile, "%s/%s", searchDir, "testNAME3.c" ) ; setFileTime( testFile, newOldTime ) ; }
int extractCurrentFile(unzFile uf, const char *password) { unz_file_info64 file_info = { 0 }; char filename_inzip[MAX_FILENAME_LEN] = { 0 }; int status = unzGetCurrentFileInfo64(uf, &file_info, filename_inzip, sizeof(filename_inzip), NULL, 0, NULL, 0); if (status != UNZ_OK) { return status; } uInt size_buf = WRITE_BUFFER_SIZE; void* buf = (void*) malloc(size_buf); if (buf == NULL) return UNZ_INTERNALERROR; if (password &&(password[0]==0)) { password = NULL; } status = unzOpenCurrentFilePassword(uf, password); const char* write_filename = filename_inzip; // Create the file on disk so we can unzip to it FILE* fout = NULL; if (status == UNZ_OK) { fout = fopen64(write_filename, "wb"); } // Read from the zip, unzip to buffer, and write to disk if (fout != NULL) { do { status = unzReadCurrentFile(uf, buf, size_buf); if (status <= 0) break; if (fwrite(buf, status, 1, fout) != 1) { status = UNZ_ERRNO; break; } } while (status > 0); if (fout) fclose(fout); // Set the time of the file that has been unzipped if (status == 0) { setFileTime(write_filename, file_info.dosDate, file_info.tmu_date); } } unzCloseCurrentFile(uf); free(buf); return status; }
bool TarImpl::extractFile( const QString& fName, const QDir& dir, const QString& newName, QString* ) { QString outFileName; if ( !ArchiveImpl::extractFile( fName, dir, newName, &outFileName ) ) { return false; } // set the file modifiaction time based on header info setFileTime( outFileName, tarDevice()->headerInfo().time() ); return true; }
void FileSystemDevice::complete_getFileUpdateTime(PacketHeader *packet_) { Packet<uint8,Sys::AsyncFileSystem::CmpFileTimeExt,GetFileUpdateTimeExt> packet=packet_; auto ext=packet.getExt(); auto ext2=packet.getDeepExt<1>(); if( ext->isOk() ) { ext2->setFileTime(ext->file_time); } else { ext2->setError(MakeError(ext,FileError_OpFault)); } packet.popExt().complete(); }