网络共享/ SMB客户端

时间:2012-11-05 19:50:56

标签: c# android xamarin.android

我正在尝试将Android手机中的文件读取到Windows共享中。我现在正在使用StreamWriter,如下所示:

StreamWriter outfile = new StreamWriter(@"\\10.16.68.253\sam\AllTxtFiles.txt");
outfile.WriteLine("TESTGENREOIADNIWAN");

但是我得到了拒绝访问权限。我已经将权限添加到清单中。我使用ES文件资源管理器(每个人访问)测试了共享。我在WPF应用程序上使用相同的代码行并且工作正常,所以我的问题出现在Android应用程序中。

我已经尝试更改连接字符串,例如ES,smb://10.16.68.253/sam/AllTxtFiles.txt,但没有运气。

有人做到了吗?

Tks!

3 个答案:

答案 0 :(得分:1)

对我来说,我必须为我的服务器Windows共享的根目录设置类似“smb:// username:password @ local ip /”的字符串。

答案 1 :(得分:1)

在尝试访问任何文件之前,您必须确保与SMB共享的连接已通过身份验证。您必须使用API​​调用才能执行此操作,因为这些内容是在托管代码之外的Win32层中完成的。

这是一个开始:

http://www.pinvoke.net/default.aspx/mpr/WNetAddConnection.html

答案 2 :(得分:0)

您确定能够使用具有EVERYONE ACCESS权限的ESFileExplorer读取/写入文件吗? Windows是一个非常安全的操作系统。您需要向特定配置文件授予权限。 示例:

  1. 在Windows上创建新的个人资料名称。
  2. 为新的个人资料名称提供密码。 (必须有密码才能分享内容)
  3. 授予文件夹或文件权限以使用密码共享对该配置文件的访问权。
  4. 使用smb以及配置文件用户名和密码访问文件夹。如 “smb:// username:password @ local ip”

    StreamWriter outfile = new StreamWriter(smb:\\username:password@"\\10.16.68.253\sam\AllTxtFiles.txt");
    outfile.WriteLine("TESTGENREOIADNIWAN");
    
相关问题