如何用FILELEN函数在指定的文件夹里的文件比较大小,从大到小排列出前10名,然后输出到list1大家帮忙。。给个代码
我很笨。。研究不出来!!
谢谢!

解决方案 »

  1.   

    Dim fs, f, f1, fc    Set fs = CreateObject("Scripting.FileSystemObject")
        
        Set f = fs.GetFolder("e:\新建文件夹")
        
        Set fc = f.Files
        
        Dim FileLength()
        
        Dim FileName() As String
        
        ReDim FileLength(fc.Count)
        
        ReDim FileName(fc.Count)
        
        Dim i As Integer
        
        i = 1
        
        For Each f1 In fc
     
            FileLength(i) = FileLen(f1)
           
            FileName(i) = f1.Name
            
            i = i + 1
             
        Next
        
        Dim Exchange
        
        Dim Str As String
        
        For i = 1 To fc.Count '''对文件大小进行排序
        
            For exchangeindex = 1 To fc.Count - 1
                    '如果前一个元素大于后一个元素,就要交换这两个相邻元素
              If FileLength(exchangeindex) < FileLength(exchangeindex + 1) Then
              
                Exchange = FileLength(exchangeindex)
                
                Str = FileName(exchangeindex)
                
                FileLength(exchangeindex) = FileLength(exchangeindex + 1)
                
                FileLength(exchangeindex + 1) = Exchange
                
                FileName(exchangeindex) = FileName(exchangeindex + 1)
                
                FileName(exchangeindex + 1) = Str
                
              End If
              
            Next
             
        Next
        
        For i = 1 To fc.Count
        
             List1.AddItem FileName(i)
             
        Next你再添加一些判断,比如文件夹下的文件数量小于10,或者等于零的处理情况,大体可以实现你的功能,只是未加校验,当文件数目超过10个,你直接显示FileName数组中的前十个就行了。