1

我目前在带有 SQL 后端的 VB.NET Visual Studio Express 2013 中工作。我有一个从 sql 服务器中提取作业列表的 sql 查询。从那里,这个列表被填充到一个组合框中,供生产主管将工作推向制造业。主管可以将作业推送到几台不同的机器上。但是,每个列表都有一些“空”作业,例如,他可以将该作业推送到任何机器,但该机器可能没有分配给该作业的任务。要从列表中删除空白条目,我将不得不根据日期时间查找具有该职位描述的每个单独的 PDF 文件,并检索文件大小。由于 pdf 是自动生成的,因此空白文件将始终具有相同的文件大小。然后我将交叉引用文件大小,如果它等于或小于空文件大小,它将从列表中删除它。我对比较文件大小的交叉引用感到困惑。当我尝试将文件的大小与整数进行比较时,它会抛出一个错误,我似乎无法弄清楚为什么,我对 VB.Net 的 IO 位相当陌生。这是我的代码:

 For Each row As DataRow In dt.Rows
 Try
                        Dim year As String = Now.Year
                        'Dim InfoReader As System.IO.FileInfo
                        inforeader = My.Computer.FileSystem.GetFileInfo("document.pdf")
                        'MsgBox("File is " & InfoReader.Length & "bytes")
                    Catch ex As Exception
                        Dim year As String = Now.Year
                        'Dim InfoReader As System.IO.FileInfo
                        inforeader = My.Computer.FileSystem.GetFileInfo("document.pdf")
                        'MsgBox("File is " & InfoReader.Length & "bytes")
                    End Try

                    If inforeader.Length <= 3333 Then
                        row.Delete()
                    End If
 Next row

请注意,为了节省空间和保护公司,我删除了实际的 pdf 文件路径。另外,不要担心年份或评论,这是程序的一部分。我的问题是“inforead.length <= 3333”

编辑(解决方案)---------------------------------------------- ------------

    Dim TheSize As ULong = My.Computer.FileSystem.GetFileInfo(document.pdf").Length

                    Select Case TheSize
                        Case Is >= 1
                            MsgBox("Blamo")


                    End Select

这是有效的

谢谢,

4

1 回答 1

2

您可以将该代码放在 Try-Catch 块中,以便我们可以捕获并输出异常吗?我怀疑这可能与您的DataTable.

Try
  If inforeader.Length <= 3333 Then
     row.Delete()
  End If
Catch (ex As Exception)
   MessageBox.Show(ex.Message)
End Try
于 2016-05-19T13:20:45.813 回答