Foxtable(狐表)用户栏目专家坐堂 → 检查剪贴板中复制的文件的文件名是否符合要求?


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

主题:检查剪贴板中复制的文件的文件名是否符合要求?

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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
检查剪贴板中复制的文件的文件名是否符合要求?  发帖心情 Post By:2018/1/8 22:21:00 [只看该作者]

感觉foxtable提供的表中附件列上传文件太麻烦。
我想做成, 首先复制待上传的文件,然后往指定的单元格中粘贴,但粘贴之前先检查剪贴板中复制的文件的文件名是否符合要求?如果符合则上传到指定路径的共享文件夹,如果不符合则弹出提示,文件名不符合要求。
文件名一般命名为:
表名_IDxx_某某文件


如果可以的话,能否给个代码示例?

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/8 22:36:00 [只看该作者]

本末倒置。

剪贴板是系统所有软件共享的,这样可能会导致不可预料的问题。

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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/1/9 9:12:00 [只看该作者]

这个不会的,我的目的只是让上传文件更直观和快捷,像很多笔记软件,比如印象笔记,不是支持直接复制文件吗?

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


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

方法一:你可以拖拽

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100494&skin=0

 

方法二:你可以循环剪切板的内容,判断文件名,如

 

For Each s As String In Clipboard.GetFileDropList
    output.show(s)
Next


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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/4/8 14:57:00 [只看该作者]

我选择一个表格的cell,如何检测出来我此时是否按下了 ctrl+v 键,这样我好直接把剪贴板中的文件复制到ftp上去。

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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/4/8 15:16:00 [只看该作者]

我在keydownedit事件中写了如下代码,结果一个msgbox都弹不出来

If e.Col.Name = "已接收文件" AndAlso e.Control = True AndAlso e.KeyCode = Keys.V Then
msgbox(2)
   For Each Str1 As String In Clipboard.GetFileDropList
msgbox(3)  
      'e.SelectedText = "Ω" '则插入符号Ω 
      Dim Index1 As Integer
      Index1 = Str1.LastIndexOf("\") '最后一次出现\符号的位置
      'Output.Show("Index1 = " & Index1)
      'Output.Show("Index2 = " & Index2)
      Str1=Str1.SubString(Index1)
msgbox(4)
      msgbox(Str1)
      e.Cancel = True '且取消此次按键
    
   Next
msgbox(5)
End If

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/8 17:07:00 [只看该作者]

测试没有问题,keydownedit是单元格双击进入编辑状态才能触发的

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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/4/9 15:46:00 [只看该作者]

为什么在keydownedit事件中,写如下代码,  执行保存   已接收文件 字段时,并没有保存?

If e.Col.Name = "已接收文件" AndAlso e.Control = True AndAlso e.KeyCode = Keys.V Then
   For Each Str_path As String In Clipboard.GetFileDropList
      Dim Index1 As Integer
      Dim Str_file As String
      Index1 = Str_path.LastIndexOf("\") '最后一次出现\符号的位置
      Str_file=Str_path.SubString(Index1+1)     '从最后一个\符号后开始截取
            '上传数据
            Dim ftp1 As new ftpclient 
            ftp1.host="172.16.5.89"
            ftp1.Account = "administrator"
            ftp1.password = "Admin1234"
            ftp1.RootDir="/各表附件/收发文件管理表/已接收文件/"   
            If Str_file.Contains( e.Table.Name & "_" & "ID" & e.Row("ID") & "_")  Then 
                If  ftp1.upload(Str_path,Str_file)=True     '上传文件到ftp文件到指定的位置
                    msgbox("文件上传成功!")
                End If
            Else 
                msgbox("文件名不符合命名规范,请重命名后上传!")
                Return '结束循环
            End If
            '   ftp1.Rename(\Photo\Desert.jpg,   )      '重命名
           'msgbox(str_path)
            e.Text=Str_file     '设置当前编辑框的内容
            CurrentTable.Current.Save
           'e.Cancel = True '且取消此次按键  
   Next

End If


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


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

If e.Col.Name = "已接收文件" AndAlso e.Control = True AndAlso e.KeyCode = Keys.V Then
    e.Cancel = True '且取消此次按键
    msgbox(1)
    e.Table.FinishEditing
    Dim ls = e.Row.DataRow.Lines(e.Col.name)
    For Each Str_path As String In Clipboard.GetFileDropList
        msgbox(str_path)
        Dim Index1 As Integer
        Dim Str_file As String
        Index1 = Str_path.LastIndexOf("\") '最后一次出现\符号的位置
        Str_file=Str_path.SubString(Index1+1)     '从最后一个\符号后开始截取
        '上传数据
        Dim ftp1 As new ftpclient
        ftp1.host="172.16.5.89"
        ftp1.Account = "administrator"
        ftp1.password = "Admin1234"
        ftp1.RootDir="/各表附件/收发文件管理表/已接收文件/"
        If Str_file.Contains( e.Table.Name & "_" & "ID" & e.Row("ID") & "_")  Then
            If  ftp1.upload(Str_path,Str_file)=True     '上传文件到ftp文件到指定的位置
                msgbox("文件上传成功!")
            End If
        Else
            msgbox("文件名不符合命名规范,请重命名后上传!")
            Return '结束循环
        End If
       
        ls.add(Str_file)
    Next
    e.Row.DataRow.Lines(e.Col.name) = ls
End If

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


加好友 发短信
等级:六尾狐 帖子:1229 积分:8566 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/4/9 17:14:00 [只看该作者]

和我的代码效果一样啊,不能在这段代码执行完后,自动保存到数据库中,需要我手动点一下保存按钮,咋回事?

 回到顶部
总数 33 1 2 3 4 下一页