我有一个用Xamarin编写的iOS应用程序。 是否有一种方法可以将某些文件(在我的情况下是图像)保存到Windows PC上的共享文件夹中? iOS设备和PC在同一个WiFi网络中,因此我可以通过IP地址访问PC机器。 但是如何将文件保存到该共享文件夹呢? 如果可能的话,我会很感激一些代码示例。
我有一个用Xamarin编写的iOS应用程序。 是否有一种方法可以将某些文件(在我的情况下是图像)保存到Windows PC上的共享文件夹中? iOS设备和PC在同一个WiFi网络中,因此我可以通过IP地址访问PC机器。 但是如何将文件保存到该共享文件夹呢? 如果可能的话,我会很感激一些代码示例。
你试过SharpCifs.Std?吗?
NuGet包在这里。
像这样,在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!"));
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})");
}
}