hippie-expand facilitates completion commands using any arbitrary set of criteria:
"A variant of `hippie-expand' which completes only file names.")
(global-set-key (kbd "C-c f") 'my-complete-file-name)
hippie-expand in general, you just repeat the binding (or
repeat it with
C-x z z z... *) to cycle through all the possible completions.
(*) Although that's more awkward if you use this in the minibuffer on account of
repeat echoing a message, so an easy-to-type binding may be preferable.