我想在程序文件夹下写个配置文件,同样的代码,之前运行都没问题,今天怎么也创建不起文件,提示没有权限,请问大侠们有谁知道是怎么回事,谢谢,代码如下:FloatWindowService.AppPath = getApplicationContext().getFilesDir()
.getAbsolutePath();
flipper_getdata = (ViewFlipper) findViewById(R.id.flipper_getdata);
bar = (ProgressBar) findViewById(R.id.progressBar1);
// 在这里创建一个设置文件 // 查看目录是否存在
File file = new File(FloatWindowService.AppPath);
FloatWindowService.AppPath = FloatWindowService.AppPath
+ "/set_data.tyzj";
    // 查看设置文件是否存在     file = new File(FloatWindowService.AppPath);
    if (!file.exists())// 如果不存在则创建
{//创建文件

try
    {file.createNewFile();//这句出错,e.getMessage()是"Permission denied"
    Log.v("消息","文件已成功创建");//没执行到这句
    FloatWindowService.SetFileWrite = openFileOutput(
    "set_data.tyzj", MODE_PRIVATE);

解决方案 »

  1.   

    黄色错误信息如下:10-26 10:21:38.363: W/System.err(5410): java.io.IOException: Permission denied
    10-26 10:21:38.364: W/System.err(5410):  at java.io.File.createNewFileImpl(Native Method)
    10-26 10:21:38.364: W/System.err(5410):  at java.io.File.createNewFile(File.java:1288)
    10-26 10:21:38.365: W/System.err(5410):  at com.TianYe.ZhiNengJiaJu.MainActivity.onCreate(MainActivity.java:60)
    10-26 10:21:38.365: W/System.err(5410):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
    10-26 10:21:38.365: W/System.err(5410):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1692)
    10-26 10:21:38.365: W/System.err(5410):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747)
    10-26 10:21:38.366: W/System.err(5410):  at android.app.ActivityThread.access$1500(ActivityThread.java:155)
    10-26 10:21:38.366: W/System.err(5410):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
    10-26 10:21:38.366: W/System.err(5410):  at android.os.Handler.dispatchMessage(Handler.java:130)
    10-26 10:21:38.366: W/System.err(5410):  at android.os.Looper.loop(SourceFile:351)
    10-26 10:21:38.366: W/System.err(5410):  at android.app.ActivityThread.main(ActivityThread.java:3814)
    10-26 10:21:38.367: W/System.err(5410):  at java.lang.reflect.Method.invokeNative(Native Method)
    10-26 10:21:38.367: W/System.err(5410):  at java.lang.reflect.Method.invoke(Method.java:538)
    10-26 10:21:38.367: W/System.err(5410):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
    10-26 10:21:38.368: W/System.err(5410):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
    10-26 10:21:38.368: W/System.err(5410):  at dalvik.system.NativeStart.main(Native Method)
      

  2.   

    Manifest里加上权限试试<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      

  3.   

    查看一下权限加了没
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />然后打开android模拟器检查一下这个模拟器在创建的时候sd卡有没有创建
      

  4.   

    感谢上面两位朋友,但是我并不是写sd卡,而是写到程序的私有文件夹,另外程序中确实有写sd卡,因此这个权限是有的。还有就是虚拟机是没有问题的,反而是真机有问题,而且真机以前都没问题,最近才出现的,觉得非常奇怪。