2012-02-20 4 views
1

J'essaie de charger le fichier le plus récent à partir d'un répertoire, mais mon code suivant ne fonctionne pas. Suis-je obtenir quelque chose d'évident terriblement mal ?!rechercher le fichier le plus récent dans le répertoire

Dim myFile = Directory.GetFiles("C:\Users\Joe\Desktop\XML Logs").OrderByDescending(Function(f) f.LastWriteTime).First() 

Je reçois deux messages d'erreur:

Type de données (s) du paramètre de type (s) dans la méthode d'extension 'Public Function OrderByDescending(Of TKey)(keySelector As System.Func(Of String, TKey)) As System.Linq.IOrderedEnumerable(Of String)' défini dans 'System.Linq.Enumerable' ne peut pas être déduit de ces arguments. Spécifier le (s) type (s) de données explicitement pourrait corriger cette erreur.

Et:

'LastWriteTime' est pas un membre de 'String'.

+1

Qu'est-ce que vous obtenez? – Magnus

Répondre

4

Vous pouvez faire en sorte que la fonction Linq utilise des objets FileInfo au lieu de chaînes.

Dim myFile = Directory.GetFiles("C:\Users\Joe\Desktop\XMLLogs").OrderByDescending(Function(f) New FileInfo(f).LastWriteTime).First() 
+1

-1: l'OP pourrait le faire, ou il pourrait simplement utiliser la méthode qu'il voulait utiliser, qui est 'DirectoryInfo.GetFiles()', comme @GSerg dit ci-dessous. –

+1

@JohnSaunders Je fournissais juste une autre réponse possible. Il ne précise pas s'il veut une chaîne comme réponse ou non. –

Questions connexes