以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  批量保存照片  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=103676)

--  作者:裴保民
--  发布时间:2017/7/14 10:06:00
--  批量保存照片
有一张客户表字段有客户名和照片。文件夹中照片是以客户名+手持身份证组成。现在想实现批量查找文件夹中照片名称前半部分也就是客户名在表中客户名字段是否存在。然后批量将符合条件的照片保存到表中。
--  作者:有点甜
--  发布时间:2017/7/14 10:11:00
--  

参考代码

 

For Each dr As DataRow In DataTables("表A").DataRows
    For Each file As String In FileSys.GetFiles("d:\\")
        Dim name As String = FileSys.GetName(file)
        If name.Contains(dr("第一列")) Then
            dr("第二列") = name
        End If
    Next
Next


--  作者:裴保民
--  发布时间:2017/7/14 10:58:00
--  
老师我想要实现的是只查找照片名的前半部分”客户名”
--  作者:有点甜
--  发布时间:2017/7/14 11:00:00
--  

2楼代码没问题。【第一列】改成你的客户列列名。

 

 


--  作者:peibaomin
--  发布时间:2017/7/14 15:06:00
--  

老师怎么添加上去图片后不显示图片呀单击图片框弹出文件不存在必须在列属性里重新设置一下路径才能显示呢!是怎么回事呢?

再一个就是想实现将图片默认保存到项目文件里的某一个文件夹中呢?项目文件夹的路径是不是这样写的“projectPath & 客户图片

[此贴子已经被作者于2017/7/14 15:08:12编辑过]

--  作者:有点甜
--  发布时间:2017/7/14 15:41:00
--  

改代码

 

For Each dr As DataRow In DataTables("表A").Select("第一列 is not null")
    For Each file As String In FileSys.GetFiles("d:\\")
        Dim name As String = FileSys.GetName(file)
        If name.Contains(dr("第一列")) Then
            FileSys.CopyFile(file, ProjectPath & "图片/" & name, True)
            dr("第二列") = name
        End If
    Next
Next
DataTables("表A").datacols("第二列").DefaultFolder  = ProjectPath & "图片/"


--  作者:裴保民
--  发布时间:2017/7/14 20:33:00
--  
如果想用保存按钮来执行这些功能。单击保存按钮弹出一个打开路径框来供选择图片存放的位置,最后节点可以到文件夹意思是选择该文件夹中所有的照片点击确认就执行保存所有符合条件的数据。应该怎么修改一下代码呢?
--  作者:有点蓝
--  发布时间:2017/7/14 20:53:00
--  
Dim dlg As New FolderBrowserDialog
If
 dlg.ShowDialog = DialogResult.Ok Then
    MessageBox.Show(
"你选择的目录是:" & dlg.SelectedPath,"提示")

For Each dr As DataRow In DataTables("表A").Select("第一列 is not null")
    For Each file As String In FileSys.GetFiles(
dlg.SelectedPath)
        Dim name As String = FileSys.GetName(file)
        If name.Contains(dr("第一列")) Then
            FileSys.CopyFile(file, ProjectPath & "图片/" & name, True)
            dr("第二列") = name
        End If
    Next
Next
DataTables("表A").datacols("第二列").DefaultFolder  = ProjectPath & "图片/"


End If


--  作者:peibaomin
--  发布时间:2017/7/14 22:11:00
--  

谢谢老师!还得麻烦一下!如果一个客户有好几张照片都是以客户姓名作为前缀命名的,把同一个客户的照片存到一起怎么实现呢?是不是做一个循环呀?

[此贴子已经被作者于2017/7/14 22:20:32编辑过]

--  作者:有点蓝
--  发布时间:2017/7/14 22:41:00
--  
Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    MessageBox.Show("你选择的目录是:" & dlg.SelectedPath,"提示")
    For Each dr As DataRow In DataTables("表A").Select("第一列 is not null")
        For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
            Dim name As String = FileSys.GetName(file)
            If name.Contains(dr("第一列")) Then
                FileSys.CopyFile(file, ProjectPath & "图片/" & name, True)
                If dr.IsNull("第二列")
                    dr("第二列") = name
                Else
                    dr("第二列") &= vbcrlf & name
                End If
            End If
        Next
    Next
    DataTables("表A").datacols("第二列").DefaultFolder  = ProjectPath & "图片/"
End If