Android get files from pc folder

I am having a problem connecting my Android device to a local PC. I want all the files from the folder that is shared on my computer to everyone.

This is the code I have:

private void connectToPC(){
        try {
            String username = "Alex";
            String password = ".";
            String sharedFolder = "Fisiere Date Senzori";
            String path = "smb://"+ip+"/Users/Alex/Documents/"+sharedFolder+"/";

            NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",username,password);
            SmbFile smbFile = new SmbFile(path,auth);

            String[] files = smbFile.list();

            for (String fileName : files) {
                Log.d("log_tag", "Fisier: " + fileName);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

and this is the result that I get:

06-29 22:35:37.752: W/System.err(17081): jcifs.smb.SmbException: Failed to connect to server
06-29 22:35:37.752: W/System.err(17081): java.net.UnknownHostException: null
06-29 22:35:37.752: W/System.err(17081):    at jcifs.UniAddress.getAllByName(UniAddress.java:315)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.getFirstAddress(SmbFile.java:810)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.connect(SmbFile.java:897)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.connect0(SmbFile.java:826)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:664)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.send(SmbFile.java:726)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1930)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.doEnum(SmbFile.java:1682)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.list(SmbFile.java:1653)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.list(SmbFile.java:1550)
06-29 22:35:37.752: W/System.err(17081):    at com.rasp.pi.StartingPoint.connectToPC(StartingPoint.java:149)
06-29 22:35:37.752: W/System.err(17081):    at com.rasp.pi.StartingPoint.onCreate(StartingPoint.java:56)
06-29 22:35:37.752: W/System.err(17081):    at android.app.Activity.performCreate(Activity.java:6289)
06-29 22:35:37.752: W/System.err(17081):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
06-29 22:35:37.752: W/System.err(17081):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
06-29 22:35:37.752: W/System.err(17081):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
06-29 22:35:37.752: W/System.err(17081):    at android.app.ActivityThread.access$900(ActivityThread.java:178)
06-29 22:35:37.752: W/System.err(17081):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
06-29 22:35:37.752: W/System.err(17081):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-29 22:35:37.752: W/System.err(17081):    at android.os.Looper.loop(Looper.java:145)
06-29 22:35:37.752: W/System.err(17081):    at android.app.ActivityThread.main(ActivityThread.java:5944)
06-29 22:35:37.752: W/System.err(17081):    at java.lang.reflect.Method.invoke(Native Method)
06-29 22:35:37.752: W/System.err(17081):    at java.lang.reflect.Method.invoke(Method.java:372)
06-29 22:35:37.752: W/System.err(17081):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
06-29 22:35:37.752: W/System.err(17081):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.connect0(SmbFile.java:828)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:664)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.send(SmbFile.java:726)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1930)
06-29 22:35:37.752: W/System.err(17081):    at jcifs.smb.SmbFile.doEnum(SmbFile.java:1682)
06-29 22:35:37.762: W/System.err(17081):    at jcifs.smb.SmbFile.list(SmbFile.java:1653)
06-29 22:35:37.762: W/System.err(17081):    at jcifs.smb.SmbFile.list(SmbFile.java:1550)
06-29 22:35:37.762: W/System.err(17081):    at com.rasp.pi.StartingPoint.connectToPC(StartingPoint.java:149)
06-29 22:35:37.762: W/System.err(17081):    at com.rasp.pi.StartingPoint.onCreate(StartingPoint.java:56)
06-29 22:35:37.762: W/System.err(17081):    at android.app.Activity.performCreate(Activity.java:6289)
06-29 22:35:37.762: W/System.err(17081):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
06-29 22:35:37.762: W/System.err(17081):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2647)
06-29 22:35:37.772: W/System.err(17081):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2759)
06-29 22:35:37.772: W/System.err(17081):    at android.app.ActivityThread.access$900(ActivityThread.java:178)
06-29 22:35:37.772: W/System.err(17081):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
06-29 22:35:37.772: W/System.err(17081):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-29 22:35:37.772: W/System.err(17081):    at android.os.Looper.loop(Looper.java:145)
06-29 22:35:37.772: W/System.err(17081):    at android.app.ActivityThread.main(ActivityThread.java:5944)
06-29 22:35:37.772: W/System.err(17081):    at java.lang.reflect.Method.invoke(Native Method)
06-29 22:35:37.772: W/System.err(17081):    at java.lang.reflect.Method.invoke(Method.java:372)
06-29 22:35:37.772: W/System.err(17081):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
06-29 22:35:37.772: W/System.err(17081):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

This method is called in a onCreatemethod from Android Activity. I use jcifs-1.3.8.jar. What can I do to make this work?

Thank.

+4
source share
1 answer

I checked your code and it works very well (with a difference in parameters). It seems that the variable ipis global, double check its correctness before calling connectToPC().

Edit

Do not forget about permission

<uses-permission android:name="android.permission.INTERNET"/>

Edit

connectToPC . .

private void connectToPC(){
    try {
        String ip = "192.168.1.61";
        String username = "omainegra";
        String password = "123";
        String sharedFolder = "D/";

        String path = "smb://" + ip + "/" + sharedFolder;
        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("",username,password);

        SmbFile smbFile = new SmbFile(path,auth);

        String[] files = smbFile.list();

        for (String fileName : files) {
            Log.e("log_tag", "Fisier: " + fileName);
        }

    } catch (IOException e) {
        e.printStackTrace();
        Log.e("", "", e);
    }
}
+2

All Articles