大家好,我遇到一个问题:
File file = new File("/mnt/sdcard/mp3/b.mp3");
file.createNewFile();
执行上面这一句时报错如下
java.io.IOException:Permission denied
at java.io.File.createNewFileImp(Native Method)
at java.io.File.createNewFile.....
错误应该是执行createNewFile时报的异常,
我在manifest.xml文件中配置了访问权限如下:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
运行是在模拟器上运行的,为什么会出现这样的问题呢?还需要设置其他的权限么?或者是在模拟器上运行的原因?
大家遇到过类似的问题吗?
File file = new File("/mnt/sdcard/mp3/b.mp3");
file.createNewFile();
执行上面这一句时报错如下
java.io.IOException:Permission denied
at java.io.File.createNewFileImp(Native Method)
at java.io.File.createNewFile.....
错误应该是执行createNewFile时报的异常,
我在manifest.xml文件中配置了访问权限如下:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
运行是在模拟器上运行的,为什么会出现这样的问题呢?还需要设置其他的权限么?或者是在模拟器上运行的原因?
大家遇到过类似的问题吗?
有mnt么?我怎么记得就是sdcard
这个项目是基于Android 2.2的。
File file = new File("/mnt/sdcard/mp3/b.mp3");
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
正常执行。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这两句话应该写在</application>的下面,而不是写在<application>和</application>之间。
程序肯定没有问题,我感觉就是他权限位置设置错误了~~那两句设置权限的语句应该在</application>下面,而不是在里面。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sxin.android.exam"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".WriteFileToSDcardAct"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk android:minSdkVersion="8" />
</manifest>这样就可以执行了,不会报错。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="zhangxpower.player"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Mp3PlayerListActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".service.DownloadService"></service>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
</manifest>
2. 对于长路径需要分几次创建,先创建最外层的dir,然后一级一级的创建,否则会出错。比如要创建下面的文件 需要这样做
File dir = new File("/mnt/sdcard/mp3");
dir.mkdir();
new File(/mnt/sdcard/mp3/b.mp3).createNewFile();
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
同一段写文件的代码,在一个程序里可以正常写文件,另一个程序里就报没权限。
AndroidManifest.xml文件里的权限都加了。
运行两个程序所使用的模拟器也是同一个。有木有高人啊~~~
1.File file = null;
2.file = new File("/mnt/sdcard/mp3/");
file.mkdir();
3.file = new File("/mnt/sdcard/mp3/b.mp3");
file.createNewFile();//这个需要异常处理,懒得写了