smb android 读写,android – 使用Samba / JCIFS问题写入/上传文件(SmbAuthException:拒绝访问)...

所以我正在尝试将一个文件从

android设备写入windows共享文件夹.我正在使用最新版本的JCIFS和

code which displays available network shares工作正常.所以我假设JCIFS和我的局域网,WiFi等一切正常.这是文件上传的代码(实际上我只是想写一个文件Sring to a File):

public boolean save2Samba(String text,String fileName) {

try {

// My Windows shares doesn't require any login/password

// String name="login";//my windows username

// String password="password1";//my windows password

// sSambaFolder contains a path like MYPC/E/SharedFolderName/

String url = "smb://" + sSambaFolder.toLowerCase()+fileName;

SmbFile file = null;

try {

// assume ANONYMOUS is my case but there is no description of this in JCIFS API

NtlmPasswordAuthentication auth = NtlmPasswordAuthentication.ANONYMOUS;

file = new SmbFile(url,auth);

android.util.Log.i("TestApp",url);

// output is like smb://mypc/e/sharedfoldername/file.txt;

SmbFileOutputStream out = new SmbFileOutputStream(file);

out.write(text.getBytes());

out.flush();

out.close();

} catch (Exception e) {

e.printStackTrace();

return false;

}

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

由于记录了网址,我确定它是正确的(我也使用上面提到的代码检查了网址并浏览了文件夹的内容).

但问题是我总是这样:

W/System.err(3214): jcifs.smb.SmbAuthException: Access is denied.

共享不受密码保护,因此我无需任何用户名/密码即可访问.我可以从另一个WinPC读取/写入/删除文件,不需要授权.此外,我尝试使用共享为WinPC上的用户创建密码,但结果是相同的.所以我尝试了几个版本的NtlmPasswordAuthentication没有运气:

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("");

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(":");

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("Administrator:"); //actual username on WinPC with shares

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("Administrator");

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null,"Administrator","");

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null,"","");

那么我做错了什么以及如何在没有auth时实现我的目标需要访问共享文件夹?BTW我的三星电视是基于Linux并使用samba客户端访问相同的共享文件夹没有问题并播放MP3从那里(嗯,是的,它只读).由于我的AOS设备通过WiFi(而不是通过以太网连接的电视)访问我的LAN,我还检查了使用笔记本电脑WiFi访问共享文件夹,发现没有问题.

添加:

我现在正在尝试执行以下行:

file = new SmbFile(url,auth);

android.util.Log.i("save2Samba","file.exists(): " + file.exists());

并获得相同的访问被拒绝.我甚至都不想写文件……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值