【问题标题】:Ignore user input while Uploading to FTP上传到 FTP 时忽略用户输入
【发布时间】:2023-11-22 18:01:01
【问题描述】:

我正在开发一个 Windows 商店应用程序,并且我正在使用 WebRequest 将文件上传到 FTP 服务器,因为这是我能找到的唯一解决方法,但我有一些限制。

当应用程序上传视频时(这需要几分钟),如果用户点击屏幕,应用程序就会崩溃。如果没有输入,它会正常工作。

当我使用 Alex Pilotti 的 FTPS 客户端 DLL 时,没有发生这种情况,但我无法使用此 DLL 获得 Windows 商店的认证。

在我的电脑中,这不会发生。它会等到视频上传完毕,然后执行用户输入,但在平板电脑中情况就不同了,可能是因为它的处理能力/内存较少,它只会崩溃。

我在想:也许有一种方法可以在上传时忽略所有用户输入。

我知道这不是最好的方法,像这样从用户那里获得控制权,但它会完成这项工作,而且只会持续几分钟。

我一直在谷歌搜索,但我找不到这样做的方法。

我会在下面留下我的代码,以防万一:

 Public Async Function uploadFile(filename As String, file As StorageFile) As Task(Of Boolean)

        Try
            Dim ftpURL As String = "ftp://111.22.33.444"
            Dim request As WebRequest = WebRequest.Create(ftpURL + "/" + filename)
            request.Credentials = New NetworkCredential("user", "pass")
            request.Method = "STOR"
            Dim buffer As Byte() = Await ReadFileToBinary(filename, file)
            Dim requestStream As Stream = Await request.GetRequestStreamAsync()
            Await requestStream.WriteAsync(buffer, 0, buffer.Length)
            Await requestStream.FlushAsync()
            Return True
        Catch ex As Exception
            Return False
        End Try

    End Function

【问题讨论】:

    标签: vb.net input upload windows-store-apps webrequest


    【解决方案1】:

    我用非常简单的一行代码解决了这个问题:

    Await Task.Run(Function() uploadFile(filename, file))
    

    为我工作。

    【讨论】: