无法创建Android的Samba目录

时间:2016-09-20 07:20:10

标签: android android-studio share samba jcifs

我是Android的新手,我只是想从我的Android拍照并将其保存到我的电脑的共享文件夹中, 这是一个简单的任务,我已经完成了这个,但现在我被困在这,我想先创建一个文件夹,例如, MYSERVER /股 我不想在这里放置图片,我想创建一个像这样的新文件夹 myserver / share / new文件夹

我希望我的所有照片都进入这个新文件夹,到目前为止我已尝试过这段代码

                 try
                    {
                        String url = "smb://serverpath/share/"+ edittext.getText().toString() +"/Test.jpg";
                        SmbFile smfile = null;
                        try {
                            NtlmPasswordAuthentication auth =new NtlmPasswordAuthentication("domain","myuser","pass");

                            smfile = new SmbFile(url, auth);
                            if(!smfile.exists())
                            {
                               smfile.mkdirs();
                            }
                            // output is like smb://mypc/e/sharedfoldername/file.txt;
                            SmbFileOutputStream out = new SmbFileOutputStream(smfile);
                            Bitmap bitmap = (Bitmap) data.getExtras().get("data");
                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                            bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
                            byte[] byteArray = stream.toByteArray();
                            out.write(byteArray);
                            out.flush();
                            out.close();

                        } catch (Exception e) {
                            e.printStackTrace();
                            e.getCause();
                        }

但我在下面找到路径未找到的例外,

09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:         jcifs.smb.SmbException: The system cannot find the path specified.
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:545)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbTransport.send(SmbTransport.java:645)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbSession.send(SmbSession.java:230)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbTree.send(SmbTree.java:119)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbFile.send(SmbFile.java:770)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at jcifs.smb.SmbFile.mkdir(SmbFile.java:2511)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at com.test.test.cameraapplication.MainActivity$2.run(MainActivity.java:180)
09-20 12:01:21.691 18341-19275/com.test.test.cameraapplication W/System.err:     at java.lang.Thread.run(Thread.java:818)

1 个答案:

答案 0 :(得分:0)

好的我解决了这个问题,我不知道它是否是一个合适的解决方案但是我仍然会分享这个我刚刚从URL中删除了文件名并创建了一个目录,之后我将文件附加到此目录

喜欢这个

                        String url = "smb://myserver/share/"+ edittext.getText().toString();
                        SmbFile smfile = null;
                        try {
                            NtlmPasswordAuthentication auth =new NtlmPasswordAuthentication("domain","user","password");

                            smfile = new SmbFile(url, auth);
                            if(!smfile.exists())
                            {
                               smfile.mkdirs();
                            }
                            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
                            url = "smb://myserver/share/"+ edittext.getText().toString()+"/IMG_"+ timeStamp + ".jpg";