在 BeforeAttachFile 事件中设置如下代码:
Select Case e.DataCol.Name
Case "附件"
Dim st As String =ProjectPath & "Attachments\" & e.DataRow("年度") & "\" & e.DataRow("分类") & "\" & e.DataRow("标签")
If FileSys.DirectoryExists(st) Then '如果目录 st 存在
DataTables("文档管理").DataCols("附件").DefaultFolder = st
Else
FileSys.CreateDirectory(st)
DataTables("文档管理").DataCols("附件").DefaultFolder = st
End If
Dim sm As String = e.SourceFolder & "\" & e.FileName
Dim sn As String = st & "\" & e.FileName
If FileSys.FileExists(sm) Then '如果指定的文件存在
If FileSys.FileExists(sn)
MessageBox.Show("文件已经存在!","提示")
e.cancel = True
Return
ElseIf FileIsOpened(sm)= True Then
MessageBox.Show("文件已经打开!","提示")
e.cancel = True
Return
Else
Filesys.copyFile(sm,sn) '先复制
FileSys.DeleteFile(sm,2,3) '则彻底删除之
End If
e.cancel = True
If e.DataRow.isnull(e.DataCol.name) Then
e.DataRow(e.DataCol.name) = e.filename
Else
e.DataRow(e.DataCol.name) = e.DataRow(e.DataCol.name) & vbcrlf & e.filename
End If
End If
End Select
问题:
增加文件后当时在文件管理器中可以打开文档,关闭项目后再去打开其它行的文件 打不开
我认为可能是这段代码把存放路径固定到这后一次增加路径上:DataTables("文档管理").DataCols("附件").DefaultFolder = st
SubFolder: 指定存放文件的子目录 这个子目录是什么意思?帮助中没有明确解释
我把代码作如下修改:
Select Case e.DataCol.Name
Case "附件"
Dim st As String =ProjectPath & "Attachments\" & e.DataRow("年度") & "\" & e.DataRow("分类") & "\" & e.DataRow("标签")
If FileSys.DirectoryExists(st) Then '如果目录 st 存在
e.SubFolder = st
' DataTables("文档管理").DataCols("附件").DefaultFolder = st
Else
FileSys.CreateDirectory(st)
' DataTables("文档管理").DataCols("附件").DefaultFolder = st
e.SubFolder = st
End If
Dim sm As String = e.SourceFolder & "\" & e.FileName
Dim sn As String = e.SubFolder & "\" & e.FileName
If FileSys.FileExists(sm) Then '如果指定的文件存在
If FileSys.FileExists(sn)
MessageBox.Show("文件已经存在!","提示")
e.cancel = True
Return
ElseIf FileIsOpened(sm)= True Then
MessageBox.Show("文件已经打开!","提示")
e.cancel = True
Return
Else
Filesys.copyFile(sm,sn) '先复制
FileSys.DeleteFile(sm,2,3) '则彻底删除之
End If
e.cancel = True
If e.DataRow.isnull(e.DataCol.name) Then
e.DataRow(e.DataCol.name) = e.filename
Else
e.DataRow(e.DataCol.name) = e.DataRow(e.DataCol.name) & vbcrlf & e.filename
End If
End If
End Select
修改后文档可以复制到对应的文件夹下,但是当时就打不开文件内容。不知道这个事件中添加的文档路径是什么,狐爸不让我看到。
[此贴子已经被作者于2014-3-11 11:08:10编辑过]