File.WriteAllBytes执行而不创建File

时间:2019-11-20 10:07:48

标签: c# xamarin.android writefile

我需要使用 .NET Web API控制器操作,在使用Xamarin Android的Mono Runtime 中将MYSQL Db提取到服务器目录。尽管代码可以完美运行,但仍有一些Android设备尽管Controller Action将返回Success(),但在Server目录中找不到MySQL数据库。我必须从“设备设置”中重置应用程序数据才能使其再次正常工作。有人可以帮助我理解控制器动作如何正确执行而不在该目录中创建任何文件吗?

我尝试更改代码以发送null而不是byte [],但是服务器返回了null指针异常

我尝试更改代码以发送仅包含单个字节的byte [],并且仍在服务器目录中创建了适当的文件。

以下是提取MySQL数据库(Mono Runtime)的代码:

        try
        {
            var filestream = new FileStream(path, FileMode.Open);
            var m = new MemoryStream();
            filestream.CopyTo(m);
            filestream.Close();

            return m.ToArray();
        }
        catch (Exception e)
        {
            Console.WriteLine("Something went wrong: " + e.InnerException?.Message);
        }
        return null;

这是处理提取文件的代码。 (.NET Web API控制器)

        try
        {
            var folder = Directory.CreateDirectory(@"E:\SQLiteBackup");
            var filename = "DB_" + AppContext.UserName + "_" + DateTime.Now.ToString("yyyyMMdd");
            var path = $"{folder.FullName}\\{filename}";
            File.WriteAllBytes(path, backupBytes);
            return Success();
        }
        catch (Exception ex)
        {
            return Fail(ex, "Something went wrong");
        }

0 个答案:

没有答案