2011-08-09 4 views
1

디렉토리 이름별로 디렉토리를 내림차순으로 나열하려고합니다. 그들은 여전히 ​​강조 순서로 나열됩니다. 누군가 올바르게 아래 코드를 수정하도록 도와 줄 수 있습니까? 제대로 작동하지 않는 것 같습니다. 나는 아래의 코드에서 오류를 얻지 않고있다.Decorder 주문 디렉토리 나열

 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, Thanks 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 
관련 문제