【问题标题】:File size in vb.netvb.net 中的文件大小
【发布时间】:2010-01-15 10:43:14
【问题描述】:

在 Form1 中我有一个 Textbox1,在这个文本框中我有一个文件“C:\folder\file.iso”的位置

在 Form2 中,我想获取 Textbox1 中文件的文件大小,所以我尝试了这个

        Dim fileDetail As IO.FileInfo


    fileDetail = My.Computer.FileSystem.GetFileInfo(Form1.Textbox1.Text)

    Label1.Text = Size: fileDetail.Length
End Sub

我没有收到错误,但标签中没有显示文件的大小。

编辑:这似乎不起作用

Private Sub Unscramble_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If System.IO.File.Exists(Form1.TextBox2.Text) Then
        Dim fi As New System.IO.FileInfo(Form1.TextBox2.Text)
        Label3.Text = "Size: " & fi.Length.ToString()
    End If
End Sub

它仍然没有给我文件的大小,也没有给出“大小:”

【问题讨论】:

  • 您确定要将该事件附加到表单加载而不是单击按钮吗?
  • 是的,因为这个表格会在“转换”过程完成时弹出。
  • 所以文本框中的文件不存在! :) 在 if 条件行中设置一个断点并测试您的“Textbox1.Text”文件是否存在。
  • 对不起,但说真的,你是做什么的?为什么要在Load方法中测试呢?为什么要用Form1.TextBox,有没有在Form1类上初始化一个共享文本框? Form1.TextBox2.Text 临时替换为"C:\boot.ini",看看会发生什么。
  • 好的,我以当前形式制作了一个文本框:Unscramble,它给了我尺寸 Dim fileDetail = My.Computer.FileSystem.GetFileInfo(Textbox1.Text) Label1.Text = "Size : " & fileDetail .Length 但是当我想要文件在另一种形式的文本框中的位置时,它会给我一个错误 Dim fileDetail = My.Computer.FileSystem.GetFileInfo(form1.Textbox1.Text) Label1.Text = "Size : " & fileDetail.长度

标签: vb.net


【解决方案1】:
    Dim fileDetail = My.Computer.FileSystem.GetFileInfo(form1.Textbox1.Text)
    Label1.Text = "Size : " & fileDetail.Length

【讨论】:

    【解决方案2】:
    ' this is the first(main) form'
    Public Class Form1
    
      Private Sub Button1_Click( _
          ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        ' create the form2 by PASSING it the file path in constructor'
        Dim f2 As New Form2(TextBox1.Text)
        f2.ShowDialog()
      End Sub
    End Class
    
    ' this is the second form'
    Public Class Form2
      Inherits Form
      Private _filePath As String
      Private Label1 As Label
    
      Public Sub New(ByVal filePath As String)
        _filePath = filePath
      End Sub
    
      ' this is the _Load method of the second form'
      Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)
    
        If IO.File.Exists(_filePath) Then
          Dim fi As New IO.FileInfo(_filePath)
          Label1.Text = "Size :" & fi.Length.ToString()
        End If
      End Sub
    End Class
    

    【讨论】:

    • 什么意思? fi.Length 的值是什么?
    【解决方案3】:

    代码运行完美,但我的项目中的某些东西阻止了它。

    创建了一个新项目,它运行良好。

    【讨论】:

      【解决方案4】:
      'label3.Text is my all string with file size.
      
      Label3.Text = "Size : " & My.Computer.FileSystem.GetFileInfo("C:\Download\my song.mp3").Length & " Bytes"
      'Output: Size: 2344 Bytes
      
      Label3.Text = "Size : " & System.Math.Round(My.Computer.FileSystem.GetFileInfo("C:\Download\my song.mp3").Length / 1024) & " KB"
      'Output: Size: 2 KB
      

      有两种选择,你想要一个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多