Just to explain what is happening. files.name is a Comma-Separated List which behaves like {files(1).name,files(2).name,files(3).name} (simplifying to three elements) because it is separated by comma, not by a semicolon. There is no Semicolon-Separated List or similar, you have to transpose or reshape to get the dimensions you want.
For vectors the solution from Shai is perfect, reshape is a simple solution which also applies to more dimensional data structures:
files=struct('names',{'a','b';'c','d'}); %example data 2x2
reshape({files.names},size(files));