System.IO.DirectoryInfo info = new System.IO.DirectoryInfo(@"C:\"); System.IO.FileInfo[] files = info.GetFiles("*.jpg"); List<System.IO.FileInfo> sortedFiles = files.OrderBy(x => x.CreationTime).ToList();I don't know that internally it's any more efficient than looping, but it's definitely simple.