检查JCIFS SMB位置是否可写?

时间:2015-02-20 12:49:58

标签: android file-permissions jcifs

我正在编写Android asynctask,需要使用JCIFS写入SMB共享。在尝试写入之前,我想检查SMB文件夹是否具有写入权限,如果没有,则向用户显示消息。理想情况下,我想在不实际将文件写入目标的情况下执行此操作。有谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:0)

试试这个。

static final String USER_NAME = "Username";
static final String PASSWORD = "Password";
static final String DOMAIN = "XYZ";    

static final String NETWORK_FOLDER = "smb://ip-address/Folder-Path/";
try{
    String fileContent = "This is a test file";
    String fileName = "test_File.txt"
    NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(DOMAIN,USER_NAME, PASSWORD);
    String path = NETWORK_FOLDER + fileName;
    System.out.println("Path: " +path);

    SmbFile sFile = new SmbFile(path, auth);
    SmbFileOutputStream sfos = new SmbFileOutputStrea(sFile);
    sfos.close();
    sfos.write(fileContent.getBytes());
}catch (Exception e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

您可以使用SmbFile.canWrite()方法检查用户是否在特定文件夹中具有写入权限。请查看以下API文档。

https://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html#canWrite()