J'ai vu un exemple très proche ici:Comment trier mon tableau de chaînes à partir de .GetFiles() dans l'ordre de la date de la dernière modification dans asp.net-webpages?
Mais je suis nouveau à LINQ et ne pouvait pas le faire fonctionner (pas sûr que je comprends les classes DirectoryInfo ou FileInfo).
Voici les extraits de code nécessaires:
(Lors de l'affectation de la matrice):
string[] files = Directory.GetFiles(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName), "*.xml");
for(int i = 0; i < files.Length; i++)
{
files[i] = files[i].Substring(files[i].LastIndexOf("\\") + 1);
files[i] = files[i].Substring(0, files[i].Length - 4);
}
(Cette dernière partie, à savoir, la 'boucle', les bandes simplement le chemin du fichier et la seule extension de fichier attendue, qui est ".xml", bien sûr, à partir de la chaîne, ne laissant que le nom de fichier propre).
(Lors de l'écriture du tableau):
[cet extrait peut ne pas être nécessaire pour répondre à cette question, mais juste au cas où]
@foreach(string file in files)
{
<p>
<button title="Permanently delete the requisition named, "@file"" type="button" id="@file" class="fileDelBtn">DEL</button> <span style="color: #000;">~</span> <span id="@file" class="listFile">@file</span>
</p>
hasSavedFiles = true;
}
choses que j'ai essayé:
string [] files = new DirectoryInfo(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName)).GetFiles().OrderBy(files => files.LastWriteTime).ToArray;
Echoue à cause de cette erreur: CS0136: Une variable locale nommée 'files' ne peut pas être déclarée dans cette portée car elle donnerait une autre variable ce qui signifie «fichiers», qui est déjà utilisé dans une portée «parent ou courant» pour désigner autre chose
Pour un, je ne peux pas comprendre l'opérateur lambda, pour la vie de moi, même après avoir regardé ici: http://msdn.microsoft.com/en-us/library/bb311046.aspx (des éclaircissements à ce sujet seraient grandement appréciés, mais ce n'est pas vraiment la question principale, par tous les moyens). Deuxièmement, en utilisant cet exemple, je sais que DirectoryInfo() n'a pas de surcharge qui prend 2 arguments, donc je peux perdre ma capacité à "Get" seulement "* .xml" fichiers, que j'aimerais conserver, mais n'est probablement pas absolument nécessaire.
Comme toujours, toute aide est grandement appréciée et si d'autres informations pourraient vous être utiles, n'hésitez pas à demander.
changer simplement à '.OrderBy (f => f.LastWriteTime)' –
@IliaG Je vais essayer maintenant. Qu'est-ce que f, dans cet exemple? – VoidKing
'f' est l'élément dans le tableau de fichiers –