以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在listview对不带扩展名的文件没显示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=180059)

--  作者:huhu
--  发布时间:2022/9/26 9:31:00
--  在listview对不带扩展名的文件没显示
Dim ftp As New FtpClient
If Network.Ping("X.X.X.X", 1000) = False Then
    ftp.Host = "X.X.X.X"
Else
    ftp.Host = "X.X.X.X"    
End If 

ftp.Account = "X"
ftp.Password = "X"

Dim lvw As WinForm.ListView = Forms("需求文件上传FTP").Controls("ListView3")
lvw.Rows.Clear
lvw.Images.Clear
lvw.Images.LargeSize = New size(32, 32)

Dim ics As String() = {"swf", "accdb", "mdb", "psd", "png", "xls", "xlsx", "bmp", "rar", "jpg", "gif", "doc", "docx", "zip", "pdf", "txt", "ppt", "exe", "bin", "map", "other"} \'定义扩展名数组
Dim kzms As String = "swf accdb mdb psd png xls xlsx bmp rar jpg  gif doc docx zip pdf txt ppt exe bin map" \'定义已知扩展名的文本串
For Each ic As String In ics
    lvw.Images.AddImage(ic, ic & ".png", ic & ".png") \'向listview里添加图标
Next
\'==============================以上是设置listview的代码============================

\'==============================以下是生成listview的代码============================

Dim sts As List(Of String) = ftp.GetFileList(vars("ljwjj"))
If sts.Count > 0 Then \'若有文件
    For Each st As String In sts
        Dim r As WinForm.ListViewRow = lvw.Rows.Add \'增加一行
        Dim Dot As Integer = st.LastIndexOf(".") \'定义.的位置
        Dim kzm As String = st.SubString(Dot + 1) \'获取扩展名
        r.text = st
        If kzms.Contains(kzm) = True Then \'若为已知扩展名
            r.ImageKey = kzm \'指定行的图标键值
        Else
            r.ImageKey = "other"
        End If
    Next
End If
\'上传带扩展名的文件都正常显示,但上传不带扩展名的文件,没显示。

ftp.Close

--  作者:有点蓝
--  发布时间:2022/9/26 9:50:00
--  
if  Array.IndexOf(ics,kzm) > -1 then
            r.ImageKey = kzm \'指定行的图标键值
        Else
            r.ImageKey = "other"
        End If

--  作者:huhu
--  发布时间:2022/9/26 10:05:00
--  
Dim sts As List(Of String) = ftp.GetFileList(vars("ljwjj"))
If sts.Count > 0 Then \'若有文件
    For Each st As String In sts
        Dim r As WinForm.ListViewRow = lvw.Rows.Add \'增加一行
        Dim Dot As Integer = st.LastIndexOf(".") \'定义.的位置
        Dim kzm As String = st.SubString(Dot + 1) \'获取扩展名
        r.text = st
        
        If Array.IndexOf(ics, kzm) > -1 Then
            r.ImageKey = kzm \'指定行的图标键值
        Else
            r.ImageKey = "other"
        End If
    \'不行啊。对不带扩展名在listview还是没显示。
    Next
End If

--  作者:有点蓝
--  发布时间:2022/9/26 10:07:00
--  
    For Each st As String In sts
msgbox(st)
        Dim r As WinForm.ListViewRow = lvw.Rows.Add \'增加一行
        Dim Dot As Integer = st.LastIndexOf(".") \'定义.的位置
        Dim kzm As String = st.SubString(Dot + 1) \'获取扩展名
msgbox(kzm )
        r.text = st
        
        If Array.IndexOf(ics, kzm) > -1 Then
msgbox(1)
            r.ImageKey = kzm \'指定行的图标键值
        Else
msgbox(2)
            r.ImageKey = "other"
        End If
    \'不行啊。对不带扩展名在listview还是没显示。
    Next
End If

--  作者:huhu
--  发布时间:2022/9/26 10:13:00
--  
1和2都没弹出。

文件是上传成功的。

--  作者:有点蓝
--  发布时间:2022/9/26 10:16:00
--  
说明前面代码出错了

    For Each st As String In sts
msgbox(st)
        Dim r As WinForm.ListViewRow = lvw.Rows.Add \'增加一行
        Dim Dot As Integer = st.LastIndexOf(".") \'定义.的位置
msgbox(Dot )
        Dim kzm As String = st.SubString(Dot + 1) \'获取扩展名
msgbox(kzm )
        r.text = st

--  作者:huhu
--  发布时间:2022/9/26 10:23:00
--  
带扩展名的都是没问题的。而且msgbox也是正常弹出。
现在有问题的是不带扩展名的。比如上传文件的名称就是default-config。  这种文件上传是成功的但是在listview没显示。注:带扩展名的都是没问题的。

--  作者:有点蓝
--  发布时间:2022/9/26 10:24:00
--  
6楼调试弹出什么内容
--  作者:huhu
--  发布时间:2022/9/26 10:27:00
--  
带扩展名的文件。msgbox都是弹出正确的内容。
没带扩展名的,没弹出msgbox。

--  作者:有点蓝
--  发布时间:2022/9/26 10:40:00
--  
GetFileList只能获取有扩展名的文件

改为ftp1.GetDetailList