Although you can parse the output from a `find` you have to take care of spaces etc. Unfortunately `gunzip` does not have a `-k` flag for keeping.
If would make a small script `gunzipkeep` that takes one parameter (the gzipped file) and does the decompression and call it with:
find /opt/fooapp/foosubdirectory -name "foo.ext.gz" -print0 | xargs -0 --norun-if-empty --max-args 1 /path/to/gunzipkeep.sh
The script could be something like:
#!/bin/bash
inname=$1
outname=${inname%.gz}
gunzip -c "$inname" > "$outname"