Foxtable(狐表)用户栏目专家坐堂 → 文件名动态命名并自动重文件名


  共有2966人关注过本帖树形打印复制链接

主题:文件名动态命名并自动重文件名

帅哥哟,离线,有人找我吗?
yifan3429
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2458 积分:22683 威望:0 精华:0 注册:2011/3/29 17:14:00
文件名动态命名并自动重文件名  发帖心情 Post By:2014/9/11 11:23:00 [只看该作者]

Dim dr As DataRow = e.DataRow

If  dr.IsNull("产品名称")  OrElse dr.IsNull("家具分类") OrElse dr.IsNull("产品编号")Then
    MessageBox.Show("产品名称,家具类别 家具分类 编号 都不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Select Case e.DataCol.Name
        Case "产品效果图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称") & "\" & "A 效果图片"
        Case "产品三视图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称")   & "\" & "B 三视图片"      
        Case "动态图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称")  & "\" & "C 动态图片"
        Case "产品空间"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" &"\" & dr("家具风格")  & "\" & dr("产品名称")  & "\" & "D 空间图片"
        Case "产品案例"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" &"\" & dr("家具风格")  & "\" & dr("产品名称")  & "\" & "E 案例图片"
        Case "设计稿"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格")  & "\" & dr("产品名称") & "\"&  "F 设计文件"
        Case "工艺文件"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格")  & "\" & dr("产品名称") & "\"  & "G 工艺文件"
        Case "成本测算"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格")  & "\" & dr("产品名称") & "\"   & "E 成本文件"
    End Select
End If

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") &  hz




上面的代码会将所有的内容强制的重名名为指定文件名   我想增加些选择功能

如果是"产品效果图"  就是按照上面的代码执行  

如果是"产品空间""成本测算"等的话  在原来的名称上重命名为   

结果实例是   效果图.jpg  

 如果有第二个文件插入进来就会是效果图(1).jpg  效果图(2).jpg依次类推,

该如何实现呢

[此贴子已经被作者于2014-9-25 17:27:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/11 11:54:00 [只看该作者]

 你判断文件是否存在,如果存在,就加上当前的时间

 

If FileSys.FileExists(e.SourceFolder & format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称") & "\" & "A 效果图片") Then
    e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称") & "\" & "A 效果图片" & Format(date.Now, "HHmmss")

Else

    e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("家具风格") &  "\" & dr("产品名称") & "\" & "A 效果图片"
End If

 

http://www.foxtable.com/help/topics/0341.htm

[此贴子已经被作者于2014-9-11 11:54:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/11 11:55:00 [只看该作者]

'Dim fn As String = e.DataRow.Lines(e.DataCol.name)(e.DataRow.Lines(e.DataCol.name).Count-1)
Dim fni As Integer=fn.LastIndexOf("(")
Dim fn2 As String =fn.SubString(fni,fn.Length-fni)
Dim fni2 As Integer= fn2.LastIndexOf(".")
e.FIlterName= "效果图(" & Val(fn2.SubString(0,fni2).trim("(").trim(")"))+1 & ".jpg"

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2458 积分:22683 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/25 16:42:00 [只看该作者]

Dim dr As DataRow = e.DataRow
If dr.IsNull("品牌") Then
    msgbox("品牌名不能为空")
    e.cancel = True
Else
    
    Select Case e.DataCol.Name
        Case "宣传_产品"
            e.SubFolder = dr("品牌") & "\" & format(dr("日期").Today,"yyyy") & "\" & "产品宣传"
        Case "宣传_企业"
            SystemReady = False
            e.SubFolder =dr("品牌") & "\" & format(dr("日期").Today,"yyyy") & "\" & "企业宣传"        
    End Select
End If

'------------------------------------------------------

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("品牌") & "企业宣传" & hz
Dim fn As String = e.DataRow.Lines(e.DataCol.name)(e.DataRow.Lines(e.DataCol.name).Count-1)
Dim fni As Integer=fn.LastIndexOf("(")
Dim fn2 As String =fn.SubString(fni,fn.Length-fni)
Dim fni2 As Integer= fn2.LastIndexOf(".")



.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.9.23.1
错误所在事件:品牌主表,BeforeAttachFile
详细错误信息:
StartIndex 不能小于 0。
参数名: startIndex


希望自动重命名   文件(1),JPG   文件(2).jpg   文件(....).jpg 不想手动修改
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140925164031.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-9-25 16:45:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/25 16:46:00 [只看该作者]

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("品牌") & "企业宣传" & hz
Dim fn As String = e.DataRow.Lines(e.DataCol.name)(e.DataRow.Lines(e.DataCol.name).Count-1)
Dim fni As Integer=fn.LastIndexOf("(")
If fni > -1 Then
    Dim fn2 As String =fn.SubString(fni,fn.Length-fni)
    Dim fni2 As Integer= fn2.LastIndexOf(".")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2458 积分:22683 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/25 17:27:00 [只看该作者]

还是有错误  老师您看下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列文件导入修改名称并自动重命名.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/25 17:32:00 [只看该作者]

 关键是你想做什么?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/25 17:33:00 [只看该作者]

 没有提示错误

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2458 积分:22683 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/25 17:43:00 [只看该作者]

索引超出范围。必须为非负值并小于集合大小。
参数名: index

第一导入文件  错误提示

同样的文件再次导入应该是自动重命名(序号递进)

还是会弹出重名文件提示


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140925174045.png
图片点击可在新窗口打开查看


我想得到的结果是下面这样的功能  自动完成复制但保留两个文件


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140925174604.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2014-9-25 17:48:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/25 17:56:00 [只看该作者]

Dim dr As DataRow = e.DataRow
If dr.IsNull("第二列") Then
    msgbox("第二列不能为空")
    e.cancel = True
Else
   
    Select Case e.DataCol.Name
        Case "第一列"
            e.SubFolder = dr("第二列") & "\" & format(dr("日期").Today,"yyyy") & "\" & "核心宣传"
    End Select
End If


'------------------------------------------------------

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename = e.DataRow("第二列") & "核心宣传" & hz
If e.DataRow(e.DataCol.name).Contains(e.FileName) Then
    e.FileName = e.DataRow("第二列") & "核心宣传" & Format(Date.Now, "yyyyMMddHHmmss") & hz
End If
If e.DataRow.Lines(e.DataCol.name).Count > 0 Then
    Dim fn As String = e.DataRow.Lines(e.DataCol.name)(e.DataRow.Lines(e.DataCol.name).Count-1)
    Dim fni As Integer=fn.LastIndexOf("(")
    If fni > -1 Then
        Dim fn2 As String =fn.SubString(fni,fn.Length-fni)
        Dim fni2 As Integer= fn2.LastIndexOf(".")
    End If
End If


 回到顶部
总数 14 1 2 下一页