populate a dropdown (or prop_search) with a string list I want the user to be able to select a string from a list of possible options.


The value stored in the extra properties data must be the selected string (not an integer id as with EnumProperty)
The list of options is generated dynamically (content depends on the file system).

[It contains file names from one or multiple directories, restricted to certain extensions, but displayed without extension, whereas duplicate filenames (i.e. different extensions) are only displayed once]


I tried to use prop_search, but it doesn't work - see this question.

What is the best way to achieve this?
You're mistakingly asssuming that an EnumProperty can only hold integers. This works just fine:

import bpy

bpy.types.Object.my_prop = bpy.props.EnumProperty(
    items=[
        ('IDENTIFIER', 'The UI string', 'Tooltip'),
        ('JEMOEDER', 'Je moeder', 'Op je hoofd'),
    ])


For more info, see the bpy.props.EnumProperty API documentation.