2011-08-09 10 views
1

ディレクトリをディレクトリ名で順番に並べ替えようとしています。彼らはまだ、順番に並べられています。私はそれが正しく動作するように見えないので誰かが私の下のコードを修正するのを助けることができますか?私は以下のコードでエラーを表示していません。そのリストを名前順に並べて表示しています。Decorder Orderのディレクトリを一覧表示します。

 Dim oDirInfo As New DirectoryInfo(Server.MapPath("Test/" & Session("Test")) & sSubDir) 
     Dim oDirs As DirectoryInfo() = oDirInfo.GetDirectories() 
     For Each oDir As DirectoryInfo In oDirs 
      oDir.GetDirectories().OrderByDescending(Function(eachDir) eachDir.Name).FirstOrDefault() 
      Try 
       Response.Write((((("<TR><TD class=""tdDir""><A href=""" & lsScriptName & "?path=" & lsWebPath) + oDir.Name & "&title=" & lsTitle & "&link=" & lsLink & """>") + oDir.Name & "</A></TD><TD class=""tdDir"">Dir</TD><TD class=""tdDir"" align=""right"">") + oDir.LastWriteTime & "</TD><TD class=""tdDir"" align=""right"">") & " Folder</TD></TR>") 
      Catch ex As Exception 
       Response.Write(("<TR><TD class=""tdDir"">" + oDir.Name & " (Error Accessing Directory)</TD><TD class=""tdDir"">Dir</TD><TD class=""tdDir"" align=""right"">") + oDir.LastWriteTime & "</TD><TD class=""tdDir"" align=""right"">? files</TD></TR>") 
      End Try 
     Next 
+0

これを行うとどうなりますか? oDir.GetDirectories()。OrderByAscending - 私はちょうど興味がある::) –

+1

あなたのoDir.GetDirectories()。OrderByDescending()はそれぞれのループの中にあるので、うまくいかず、各繰り返し。あなたはそれが働くためにFor Eachの上にその声明を動かすことができるはずです。 –

+0

私は各ループの上でそれを試しましたが、実際にそれを正確に語る方法はわかりません。それは不平を続けている。 – Kris

答えて

0

それぞれについて、あなたの上にこれを追加します。GetDirectories以来

Array.Reverse(oDirs) 

()は昇順アルファ順にディレクトリを返し、それはあなたがしなければならないのです。

+0

「System.IO.DirectoryInfoタイプの値は 'system.array'に変換できません」 – Kris

+0

Sweet、ありがとうございましたAaron。Array.Reverse(oDirs) – Kris

+0

ありがとう、私の例を更新しました –

0

ああ、オブジェクト接頭辞。それらはもはや奨励されていないことを知っている?

Dim ParentDir As New DirectoryInfo(Server.MapPath("Test/" & Session("Test")) & sSubDir) 
For Each oDir As DirectoryInfo In ParentDir.GetDirectories().OrderByDescending(Function(eachDir) eachDir.Name) 
    Try 
     Response.Write((((("<TR><TD class=""tdDir""><A href=""" & lsScriptName & "?path=" & lsWebPath) + oDir.Name & "&title=" & lsTitle & "&link=" & lsLink & """>") + oDir.Name & "</A></TD><TD class=""tdDir"">Dir</TD><TD class=""tdDir"" align=""right"">") + oDir.LastWriteTime & "</TD><TD class=""tdDir"" align=""right"">") & " Folder</TD></TR>") 
    Catch ex As Exception 
     Response.Write(("<TR><TD class=""tdDir"">" + oDir.Name & " (Error Accessing Directory)</TD><TD class=""tdDir"">Dir</TD><TD class=""tdDir"" align=""right"">") + oDir.LastWriteTime & "</TD><TD class=""tdDir"" align=""right"">? files</TD></TR>") 
    End Try 
Next 
関連する問題