CPLErr GDALDefaultOverviews::CleanOverviews() { // Anything to do? if( poODS == NULL ) return CE_None; // Delete the overview file(s). GDALDriver *poOvrDriver = poODS->GetDriver(); GDALClose( poODS ); poODS = NULL; const CPLErr eErr = poOvrDriver != NULL ? poOvrDriver->Delete( osOvrFilename ) : CE_None; // Reset the saved overview filename. if( !EQUAL(poDS->GetDescription(),":::VIRTUAL:::") ) { const bool bUseRRD = CPLTestBool(CPLGetConfigOption("USE_RRD","NO")); if( bUseRRD ) osOvrFilename = CPLResetExtension( poDS->GetDescription(), "aux" ); else osOvrFilename.Printf( "%s.ovr", poDS->GetDescription() ); } else { osOvrFilename = ""; } return eErr; }
BIGGIFDataset::~BIGGIFDataset() { FlushCache(); if( hGifFile ) DGifCloseFile( hGifFile ); if( fp != NULL ) VSIFCloseL( fp ); if( poWorkDS != NULL ) { CPLString osTempFilename = poWorkDS->GetDescription(); GDALClose( (GDALDatasetH) poWorkDS ); poWorkDS = NULL; GDALDriver *poGTiff = (GDALDriver *) GDALGetDriverByName( "GTiff" ); poGTiff->Delete( osTempFilename ); } }
int BIGGIFDataset::CloseDependentDatasets() { int bHasDroppedRef = GDALPamDataset::CloseDependentDatasets(); if( poWorkDS != NULL ) { bHasDroppedRef = TRUE; CPLString osTempFilename = poWorkDS->GetDescription(); GDALClose( (GDALDatasetH) poWorkDS ); poWorkDS = NULL; GDALDriver *poGTiff = (GDALDriver *) GDALGetDriverByName( "GTiff" ); poGTiff->Delete( osTempFilename ); poWorkDS = NULL; } return bHasDroppedRef; }
SEXP ogrDeleteDataSource (SEXP ogrSource, SEXP ogrDriver) { #ifdef GDALV2 GDALDriver *poDriver; #else OGRSFDriver *poDriver; #endif installErrorHandler(); #ifdef GDALV2 poDriver = GetGDALDriverManager()->GetDriverByName(CHAR(STRING_ELT(ogrDriver, 0))); #else poDriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName( CHAR(STRING_ELT(ogrDriver, 0)) ); #endif uninstallErrorHandlerAndTriggerError(); if (poDriver == NULL) { error("Driver not available"); } installErrorHandler(); #ifdef GDALV2 poDriver->Delete(CHAR(STRING_ELT(ogrSource, 0))); #else if (poDriver->TestCapability(ODrCDeleteDataSource)) { if (poDriver->DeleteDataSource(CHAR(STRING_ELT(ogrSource, 0))) != OGRERR_NONE) { uninstallErrorHandlerAndTriggerError(); error("Data source could not be deleted"); } } else { uninstallErrorHandlerAndTriggerError(); error("This driver is not capable of data source deletion"); } #endif uninstallErrorHandlerAndTriggerError(); return(R_NilValue); }