[Gdal-dev] pre deleting for GDALDriver::Create() and CreateCopy()

Lucena, Ivan ivan.lucena at pmldnet.com
Sat Nov 10 15:54:51 EST 2007


Frank,

I have no objection. I actually ran into the same problem with a driver 
that I wrote but I wasn't aware of GetFileList() so I implemented the 
fix (delete associated files) on the Create method of the driver itself. 
Your solution sounds great.

Regards,

Ivan

Frank Warmerdam wrote:
> Folks,
> 
> Even noticed a problem that has been nagging the back of my mind as well.
> Currently gdal_translate will generally just blat over existing files
> without warnings or anything.  The old file is replaced, and I'm fine with
> that.  But, associated files (.wld, .aux.xml, .ovr, etc) are not cleaned up
> which can easily leave us in the position where an old support file is 
> treated
> as applying to a new base file - quite possibly very inappropriately.
> 
> To fix this, I have modified the GDALDriver::Create() and
> GDALDriver::CreateCopy() methods to first check if the dataset already
> exists.  If so, it identifies the appropriate driver, and calls it's delete
> method.  For drivers who properly know about their supporting files (see
> GetFileList()) this will result in supporting files getting cleaned up.
> 
> This does a good job of cleaning up .aux.xml files for instance.
> 
> This is a fairly significant behavioral change, and if there are people 
> with
> an objection please let me know and we can discuss it at greater length.
> 
> Best regards,



More information about the gdal-dev mailing list