asp.net - 在 VB.net 中启动动态多维数组

标签 asp.net arrays vb.net

我收到“对象引用未设置到对象实例”。尝试填充 fileDetails 数组时出错。我是 vb.net 新手,我迷路了。

Public Sub FindAllOrphanFiles(ByVal targetDirectory As String)
    Dim fileEntries As String() = Directory.GetFiles(targetDirectory)

    ' Process the list of files found in the directory. 
    Dim files As String
    Dim iCount As Integer = 0
    Dim fileDetails As String(,)
    For Each files In fileEntries
        Dim fileIcon As String
        Dim thisFile As New IO.FileInfo(files)

        Dim fileName As String = thisFile.Name
        Dim fileSize As String = thisFile.Length
        Dim fileDateModified As String = thisFile.LastWriteTime
        Dim fileExtension As String = Path.GetExtension(fileName)
        Dim fileShortPath As String = Replace(Replace(files, uploadFolderPath, ""), fileName, "")
        Dim fileFullPath As String = files
        If fileExtension = ".pdf" Then
            fileIcon = "acrobat"
        Else
            fileIcon = "paint"
        End If

        ' Write to Array
        fileDetails(iCount, 0) = fileIcon
        fileDetails(iCount, 1) = fileName
        fileDetails(iCount, 2) = fileShortPath
        fileDetails(iCount, 3) = fileDateModified
        fileDetails(iCount, 4) = fileSize
        fileDetails(iCount, 5) = fileFullPath

        iCount += 1
    Next files
    Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)

    ' Recurse into subdirectories of this directory. 
    Dim subdirectory As String
    For Each subdirectory In subdirectoryEntries
        FindAllOrphanFiles(subdirectory)
    Next subdirectory

End Sub 'FindAllOrphanFiles

任何帮助将不胜感激。

最佳答案

您的数组未初始化。如果您知道循环之前某个时刻的大小,则应该使用 REDIM 对其进行初始化:

Dim fileDetails As String(,)
redim fileDetails(fileEntries.Count -1,5)
For Each files In fileEntries
  ....

如果您事先不知道,请在循环内使用 Redim Preserve:

Dim fileDetails As String(,)
Dim I as int32 = -1
For Each files In fileEntries
    I += 1
    redim preserve fileDetails(i,5)
    ....

关于asp.net - 在 VB.net 中启动动态多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086052/

相关文章:

c# - 无法在 GridView ASP.NET 中设置列​​宽(GridView 没有数据源)

asp.net - .NET 4.5 Gridview 在 EditItemTemplate UpdateMethod 中使用 DropDownList

java - 错误: "A JSONArray text must start with ' [' at 1 [character 2 line 1]" should not apply

mysql - 如何在保存到数据库之前调整图像大小?

vb.net - 静态或私有(private)

c# - 如何动态添加 HTML 元素 (ASP.NET)

javascript - 在重定向到 ASP.NET c# 中的另一个页面之前显示 ClientScript 警报?

asp.net - 带有 SignalR 的 WCF 服务

javascript - Vuejs数组推送

java - 在java中的arrayList中生成动态对象名称