上传到FTP时忽略用户输入

时间:2013-12-16 10:28:42

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

我正在开发一个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

1 个答案:

答案 0 :(得分:0)

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

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

为我工作。