I think we need to see what is in '...'. The FileInfo object is clearly not getting cleaned up correctly and that might well be because you are storing a reference to it in the list (which you shouldn't). This is easy to do as
both Image.FromStream and Image.FromFile keep the stream open and therefore the file locked for the lifetime of the Image object.
So what you need to do is open the file, read the contents into a MemoryStream, and use that to create your image:
foreach(FileInfo file in files){
FileStream fs = file.OpenRead();
MemoryStream ms = new MemoryStream();
fs.CopyTo(ms);
fs.Close();
Image image = Image.FromStream(ms);
}