使用Dropbox文件夹检查文件是否存在VB.net

问题描述 投票:0回答:1

这是我的代码。

是,我同时使用了DropNet和Dropbox API,因为我发现DropNet上传效果很好。但是我正在尝试使用Dropbox One来检查文件名(因为我无法在DropNet上使用它,并且也无法在线找到任何帮助)

我毫不怀疑我的问题与整个Async&Await有关,因为我以前从未使用过这些东西。

文件上传和获取共享都可以正常工作。

这是VB.Net网站。当我运行它时,它冻结在DidSDropBoxFileExist函数的一侧

Imports Dropbox.Api
Imports DropNet
Imports DropNet.Models

Partial Class _Default
  Inherits System.Web.UI.Page
  Dim br As String = "<br>"
  Public FileName As String
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If FileUpload1.HasFile Then
        Dim dropNet_client As New DropNetClient("", "", "")
        Dim dropBox_client As New DropboxClient("")

        FileName = FileUpload1.PostedFile.FileName
        Response.Write("before: " & FileName & br)
        MsgBox(1)
        FileName = DoesDropBoxFileExist(dropBox_client).Result

        MsgBox(3)
            Response.Write("after: " & FileName & br)

        Dim content As Byte() = FileUpload1.FileBytes


        Dim pathToFile As String = Server.MapPath("~")
        'Response.Write(pathToFile)
        dropNet_client.UploadFile("/AlertImages/", FileName, content, True)

        Dim shareResponse As ShareResponse = dropNet_client.GetShare("/AlertImages/" & FileName)
        Response.Write(shareResponse.Url)

        If Not FileName.ToLower.Contains("pdf") Then
            Dim rawBytes As Byte() = dropNet_client.GetThumbnail("/AlertImages/" & FileName, 2)
            Dim base64String As String = Convert.ToBase64String(rawBytes, 0, rawBytes.Length)
            Image1.ImageUrl = "data:image/png;base64," & base64String
            Image1.Visible = True
        End If

        dropBox_client.Dispose()


    End If
End Sub

Private Async Function DoesDropBoxFileExist(_client As DropboxClient) As Threading.Tasks.Task(Of String)
    Dim rtn As String = FileName

    Dim list = Await _client.Files.ListFolderAsync("/AlertImages")
    MsgBox(2)
    ' show folders then files
    For Each item As Files.Metadata In list.Entries.Where(Function(i) i.IsFolder)
        If item.Name = FileName Then
            FileName = FileName & Now.ToString
        End If
        Response.Write(" < b > " & item.Name & "</b>" & br)
        'Dim list2 As ListFolderResult = Await dbx.Files.ListFolderAsync(item.Name)
        'For Each itm As Files.Metadata In list2.Entries.Where(Function(j) j.IsFile)
        '    Response.Write(item.Name & " : " & item.AsFile.Size & br)
        'Next
    Next

    For Each item As Files.Metadata In list.Entries.Where(Function(i) i.IsFile)
        Response.Write("'" & item.Name & "' '" & FileName & "'" & br)
        If item.Name = FileName Then
            Response.Write("test" & br)
            rtn = FileName & "_" & Now.ToString
        End If
    Next
    Return rtn
    End Function
End Class

这是我的代码。是的,我同时使用了DropNet和Dropbox API,因为我发现DropNet上传效果很好。但是我试图使用Dropbox来检查文件名(因为我无法使它正常工作...

vb.net dropbox dropbox-api
1个回答
0
投票

要在VB.Net中检查文件是否存在于Dropbox中,此示例演示了递归遍历所有Dropbox文件夹以检索所有文件的名称并将它们放入集合的过程。然后我们检查文件是否在集合中。

© www.soinside.com 2019 - 2024. All rights reserved.