Xamarin.iOS:将文件保存到Windows共享文件夹

时间:2015-09-24 15:31:47

标签: ios xamarin xamarin.ios

我有一个使用Xamarin编写的iOS应用程序。有没有办法将一些文件(在我的情况下为Image)保存到Windows PC上的共享文件夹中? iOS设备和PC在同一个WiFi网络中,因此我可以通过IP地址访问PC机。但是如何将文件保存到该共享文件夹? 如果可能的话,我会感激一些代码示例。

2 个答案:

答案 0 :(得分:0)

您是否尝试SharpCifs.Std?
NuGet包是here.

在Xamarin.iOS上驱动SMB,就像这样。

var file = new SmbFile("smb://UserName:Password@ServerName/ShareName/Folder/NewFileName.txt"));
file.CreateNewFile();
var writeStream = file.GetOutputStream();
writeStream.Write(Encoding.UTF8.GetBytes("Hello!"));

答案 1 :(得分:0)

在我的 Xamarin 应用程序(在 iPad Pro 12.9" 上)中,我通过在我的 Windows10 机器上激活 FTP 来解决这个问题(请参阅 Google 如何执行此操作),然后通过 FTP 将图像上传到 Windows 文件夹:

private void UploadImage(UIImage image, string fileName)
{
    try
    {
        string ftpPath = "ftp://192.168.47.79/"; // IP of my Windows10 pc
        string ftpTargetFilePath = $"{ftpPath}{fileName}";
        var credentials = new NetworkCredential("ftpuser", "ftp");

        FtpWebRequest request = (FtpWebRequest) WebRequest.Create(ftpTargetFilePath);
        request.Credentials = credentials;
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.UsePassive = false; // in my case I needed passive mode to be deactivated
        
        using (Stream imageStream = image.AsPNG().AsStream())
        {
            using (Stream ftpStream = request.GetRequestStream())
            {
                imageStream.CopyTo(ftpStream);
            }
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine($"Uploading Image: Failed! ({ex.Message})");
    }
}