Field widget item form alter for file field
A lot of the build logic for the file field widgets is handled in #process callbacks, so some detailed structures of each individual file's form element aren't really available during hook_form_alter()s.

You might want to preprocess the individual elements with hook_preprocess_file_widget(). Something like:

/**
 * Implements hook_preprocess_file_widget().
 */
function MYMODULE_preprocess_file_widget(&amp;$vars) {
  // Make some alterations to normal file-field widgets.
  $element = &amp;$vars['element'];
  if (isset($element['#file']) &amp;&amp; is_object($element['#file'])) {
    // This is an existing file... alter $element accordingly.
  }
  else {
    // This is the actual upload widget... you may want to skip this or alter
    // it in a special way.
  }
}


You could also use hook_preprocess_file_widget_multiple() to specifically target a group of files in a file field that has cardinality > 1. In this case you may need to have some iteration logic to loop through the children elements with element_children().