以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 检查剪贴板中复制的文件的文件名是否符合要求? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=113087) |
-- 作者:ycwk -- 发布时间:2018/1/8 22:21:00 -- 检查剪贴板中复制的文件的文件名是否符合要求? 感觉foxtable提供的表中附件列上传文件太麻烦。 我想做成, 首先复制待上传的文件,然后往指定的单元格中粘贴,但粘贴之前先检查剪贴板中复制的文件的文件名是否符合要求?如果符合则上传到指定路径的共享文件夹,如果不符合则弹出提示,文件名不符合要求。文件名一般命名为: 表名_IDxx_某某文件 如果可以的话,能否给个代码示例?
|
-- 作者:有点蓝 -- 发布时间:2018/1/8 22:36:00 -- 本末倒置。 剪贴板是系统所有软件共享的,这样可能会导致不可预料的问题。
|
-- 作者:ycwk -- 发布时间:2018/1/9 9:12:00 -- 这个不会的,我的目的只是让上传文件更直观和快捷,像很多笔记软件,比如印象笔记,不是支持直接复制文件吗? |
-- 作者:有点甜 -- 发布时间: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 |
-- 作者:ycwk -- 发布时间:2018/4/8 14:57:00 -- 我选择一个表格的cell,如何检测出来我此时是否按下了 ctrl+v 键,这样我好直接把剪贴板中的文件复制到ftp上去。 |
-- 作者:ycwk -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间:2018/4/8 17:07:00 -- 测试没有问题,keydownedit是单元格双击进入编辑状态才能触发的 |
-- 作者:ycwk -- 发布时间: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 |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2018/4/9 17:14:00 -- 和我的代码效果一样啊,不能在这段代码执行完后,自动保存到数据库中,需要我手动点一下保存按钮,咋回事? |