首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将'system.IO.DirectoryInfo‘类型的对象强制转换为'System.IO.FileInfo’类型

无法将'system.IO.DirectoryInfo‘类型的对象强制转换为'System.IO.FileInfo’类型
EN

Stack Overflow用户
提问于 2019-01-15 17:21:24
回答 1查看 407关注 0票数 0

我在下面代码中的where子句中得到一个错误。错误状态为:“无法将'System.IO.DirectoryInfo‘类型的对象强制转换为'System.IO.FileInfo’类型

代码语言:javascript
复制
Try
    Dim query As MySqlCommand = SQLConnection.CreateCommand
    Dim dir As DirectoryInfo = New DirectoryInfo("\\10.2.1.40\IT\BACKUPDATA\MBP_DATA\")
    For Each fi As FileInfo In dir.GetFileSystemInfos
        query.CommandText = "UPDATE backup_db set tgl = @date1, ukuran = @ukuran, issaturday = @issaturday, iseom = @iseom,  pic = @pic
'                                        WHERE ukuran = 0 and tgl = @date1"
        query.Parameters.Clear()
        query.Parameters.AddWithValue("@date1", fi.LastWriteTime.ToString("yyyy-MM-dd"))
        query.Parameters.AddWithValue("@ukuran", fi.Length)
        query.Parameters.AddWithValue("@issaturday", "0")
        query.Parameters.AddWithValue("@iseom", "0")
        query.Parameters.AddWithValue("@pic", "Carles")
        query.ExecuteNonQuery()
    Next
Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 17:27:34

GetFileSystemInfos返回非FileInfoFileSystemInfo数组

代码语言:javascript
复制
For Each fi As FileSystemInfo In dir.GetFileSystemInfos()
   ' ... '
Next

FileInfo也是FileSystemInfo,因为它是一个子类,但反之亦然。DirectoryInfo.GetFileSystemInfos返回文件和目录。所以你不能把它们转换成FileInfo

但是由于您需要Length,所以我假设您实际上只需要文件。然后使用GetFiles

代码语言:javascript
复制
For Each fi As FileInfo In dir.GetFiles()
   ' ... '
Next
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54195871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档