Exemplo n.º 1
0
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 ) ;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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();
 }