android 6 - open failed: ENOENT (No such file or directory) -


when creating new file, getting above error. code works in android 4.4 version . testing on 6.0.1 device , getting error. have write permission in manifest file, tried mkdirs() before creating file, still same issue. here code snippet :

file newfile = new file(localfilepath);         try {             string abc = null;             abc = environment.getexternalstoragestate();             if(!newfile.exists()) {                 newfile.mkdirs();                 newfile.createnewfile();             }         } catch (ioexception e1) {             e1.printstacktrace();             return false;         } 

the externalstoragstate comes 'mounted'. storage location /storage/emulated/0/testlocation/filename..

you have give run time permission 6.0

private static final int my_permissions_request_storage = 1;  private string[] storage_permissions =             {                     manifest.permission.read_external_storage,                     manifest.permission.write_external_storage             };     if ((int) build.version.sdk_int >= 23) {                     if (activitycompat.checkselfpermission(this, manifest.permission.read_external_storage) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, manifest.permission.write_external_storage) != packagemanager.permission_granted) {                          if (activitycompat.shouldshowrequestpermissionrationale(this, manifest.permission.read_external_storage) && activitycompat.shouldshowrequestpermissionrationale(this, manifest.permission.write_external_storage)) {                             if (activitycompat.shouldshowrequestpermissionrationale(this, manifest.permission.read_external_storage) && activitycompat.shouldshowrequestpermissionrationale(this, manifest.permission.write_external_storage)) {                                 android.app.alertdialog.builder builder = new android.app.alertdialog.builder(this);                                 builder.setmessage("to storage access have allow access sd card content.");                                 builder.settitle("storage");                                 builder.setpositivebutton("ok", new dialoginterface.onclicklistener() {                                     @override                                     public void onclick(dialoginterface dialog, int which) {                                         activitycompat.requestpermissions(omnisaleshubdraweractivity.this, storage_permissions, 0);                                         oncontactsclick();                                     }                                 });                                  builder.show();                             } else {                                 activitycompat.requestpermissions(this, storage_permissions, 0);                                 oncontactsclick();                             }                         } else {                             activitycompat.requestpermissions(draweractivity.this,                                     storage_permissions,                                     my_permissions_request_storage);                             oncontactsclick();                         }                      }                 } 

Comments