One (kinda dorkie) way to do this would be to simply overwrite the filedocumentcontents with an empty string:
com.mendix.core.Core.storeFileDocument(getContext(), myMendixObject, new ByteArrayInputStream("".getBytes()));
the other (nicer) way of doing it is:
File origFile = com.mendix.core.Core.getFileDocumentContentAsFile(fil.getMendixObject()); String path = origFile.getAbsoluteFile().getParent() + File.separator + "thumbs" + File.separator + fil.getFileName(); File thumbFile = new File(path); thumbFile.delete(); origFile.delete();
However, the problem with the second solution is that I suspect that they'll deprecate that method soon, because it's generally nicer to work with inputstreams than with file objects directly.
(PS: I have only updated the second solution for getting rid of thumbnails, I don't think the first solution will get rid of thumbs)
My advice: don't do it.
The idea of a
FileDocument object is that it represents a file on disk. Removing the object means removing the file on disk. The same holds for creating and changing a
If you want to have an object containing additional information, do not derive from
FileDocument but create an association to
FileDocument. It that way you can upload new documents by creating a new
FileDocument and setting the association.
The same story holds for an Image object. Do not inherit from Image but create an association to it. An image object represents and image (and optionally its thumbnail) on disk. Actions like create, remove, etc. should act on both items.