Permissions android,adb,没有这样的文件或目录
我在访问我在应用程序中创建的文件时遇到问题。 我已经浏览了互联网上所有可能的建议,但仍然无法访问这些文件Permissions android,adb,没有这样的文件或目录,permissions,storage,adb,chmod,ddms,Permissions,Storage,Adb,Chmod,Ddms,我在访问我在应用程序中创建的文件时遇到问题。 我已经浏览了互联网上所有可能的建议,但仍然无法访问这些文件 protected void onHandleIntent(Intent arg0) { ArrayList<String> parameters = new ArrayList<String>(); String fileName; File file; File parameterFile; //generate da
protected void onHandleIntent(Intent arg0) {
ArrayList<String> parameters = new ArrayList<String>();
String fileName;
File file;
File parameterFile;
//generate data containing general information about the device
//retrieve the data from the intent
parameters=arg0.getStringArrayListExtra("com.example.mypackage.parameters");
for(int i = 0; i < parameters.size(); ++i)
{
parameter = parameters.get(i);
String[] split = parameter.split(" ");
String name=split[1];
fileName = name + ".csv";
//check the state of the external storage
String state = Environment.getExternalStorageState();
Log.e("DIR: ", "STATE: " + Environment.getExternalStorageState());
//return info if the storage is read-only
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
{Log.e("DIR: ", "STATE: READ_ONLY");}
final File parametersDir = new File(Environment.getExternalStoragePublicDirectory("myPackage"), "Parameters");
parametersDir.mkdirs();
parameterFile = new File(parametersDir, fileName);
parameterFile.setExecutable(true);
generateTextFile(parameterFile, parameter);
//check file's permissions
parameterFile.setExecutable(true, false);
parameterFile.setReadable(true, false);
parameterFile.setWritable(true, false);
boolean executable = parameterFile.canExecute();
boolean readable = parameterFile.canRead();
boolean writable = parameterFile.canWrite();
if(!executable){Log.e("FILE: ", "File cannnot be executed.");}
if(!readable){Log.e("FILE: ", "File cannnot be read.");}
if(!writable){Log.e("FILE: ", "File cannnot be written to.");}
}
我在用手机
我正在将文件写入三星Galaxy Nexus的外部存储器
DDMS会看到创建的文件,但每当我尝试提取它们时,它都会显示:
[2013-06-25 11:45:26-ddms]传输错误:没有这样的文件或目录
[2013-06-25 11:45:26]拉选失败:没有这样的文件或目录
但是,这些文件在DDMS中是可见的,是的,我在左侧的设备资源管理器中选择了手机和软件包
当我以根用户身份打开adb shell时:
苏
cd存储/sdcard0
然后我两个都进去了
chmod 777 myPackage
及
chmod-R 777 myPackage
但它仍然不会更改我已写入此目录的文件的权限。另外,直接在myPackage目录中的文件上使用chmod 777不起作用,并返回:没有这样的文件或目录
不用说,我无法从shell上方提取文件
这是我用来生成文件的代码
protected void onHandleIntent(Intent arg0) {
ArrayList<String> parameters = new ArrayList<String>();
String fileName;
File file;
File parameterFile;
//generate data containing general information about the device
//retrieve the data from the intent
parameters=arg0.getStringArrayListExtra("com.example.mypackage.parameters");
for(int i = 0; i < parameters.size(); ++i)
{
parameter = parameters.get(i);
String[] split = parameter.split(" ");
String name=split[1];
fileName = name + ".csv";
//check the state of the external storage
String state = Environment.getExternalStorageState();
Log.e("DIR: ", "STATE: " + Environment.getExternalStorageState());
//return info if the storage is read-only
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
{Log.e("DIR: ", "STATE: READ_ONLY");}
final File parametersDir = new File(Environment.getExternalStoragePublicDirectory("myPackage"), "Parameters");
parametersDir.mkdirs();
parameterFile = new File(parametersDir, fileName);
parameterFile.setExecutable(true);
generateTextFile(parameterFile, parameter);
//check file's permissions
parameterFile.setExecutable(true, false);
parameterFile.setReadable(true, false);
parameterFile.setWritable(true, false);
boolean executable = parameterFile.canExecute();
boolean readable = parameterFile.canRead();
boolean writable = parameterFile.canWrite();
if(!executable){Log.e("FILE: ", "File cannnot be executed.");}
if(!readable){Log.e("FILE: ", "File cannnot be read.");}
if(!writable){Log.e("FILE: ", "File cannnot be written to.");}
}
根据日志,一旦我的文件被写入,即使我将它们设置为可读、可写和可执行,它们的权限仍然保持不变
为了澄清这些疑问,我也在舱单上声明
使用权限android:name=android.permission.WRITE\u外部存储
使用权限android:name=android.permission.READ\u外部存储
我的意思是,我真的不知道下一步该做什么,所以如果有人能帮助我,我将非常高兴。问题解决了,这与权限无关。记住,孩子们,在定义文件名时,确保在扩展名之前删除行尾字符!!