static File replaceExtension(File f, S extOld, S extNew) { ret newFile(replaceExtension(f2s(f), extOld, extNew)); } static File replaceExtension(File f, S extNew) { ret replaceExtension(f, fileExtension(f), extNew); } static S replaceExtension(S s, S extOld, S extNew) { s = dropSuffixIC(addPrefixOptIfNempty(".", extOld), s); ret s + addPrefixOptIfNempty(".", extNew); } static S replaceExtension(S name, S extNew) { ret replaceExtension(name, fileExtension(name), extNew); }