2015-07-29 2 views
1

У меня есть проверка проблемы, если файл существует или нет, это мой простой код:Проверьте, существует ли файл или нет? File.Exists() возвращает всегда ложно

File myfile = new File ("SecretFile"); 

      if(myfile.exists(){ 

       TextView mytxt = (TextView)findViewById(R.id.textView); 
       mytxt.setText("Loaded successfully"); 

      } 
      else{ 
       try { 
        myfile.createNewFile(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       TextView mytxt = (TextView)findViewById(R.id.textView); 
       mytxt.setText("Not loaded,reboot the application"); 
      } 

Я делаю простую игру, и мне нужно, чтобы проверить первый запуск приложения, потому что, когда приложение запускает загрузку всех переменных из файлов, но при первом запуске файлов нет, поэтому приложение аварийно завершает работу. У меня также есть еще один вопрос о файле «SecretFile», где находится? Как создать файл внутри Android/data/com.mypackage.myapp/SecretFile?

+1

Добавьте это разрешение 'android.permission.WRITE_EXTERNAL_STORAGE' –

ответ

9
File myfile = new File ("SecretFile"); 

Это утверждение не имеет значения для Android.

У меня также есть другой вопрос о файле «SecretFile», где находится?

Нигде не было. Вы можете хранить SecretFile на internal storage или external storage, но вы должны сделать это, создав объект File, указывающий на эти местоположения (например, File myfile = new File(getFilesDir(), "SecretFile");).

Как создать файл внутри Android/data/com.mypackage.myapp/SecretFile?

Вы не можете. Самое близкое совпадение соответствует use getExternalFilesDir(null), где у меня есть getFilesDir() в моем фрагменте кода, который помещает ваш файл в Android/data/com.mypackage.myapp/files/SecretFile на внешнее хранилище. Также, как отмечает Der Golem, вам понадобится разрешение WRITE_EXTERNAL_STORAGE на уровнях API с 4 по 18.

+0

' ваш файл в Android/data/com.mypackage.myapp/files/SecretFile'. Это не существующий путь. Он должен быть добавлен '/ storage/0 /' или что-то в этом роде. – greenapps

+0

@greenapps: Я предполагаю, что OP смотрит на внешнее хранилище через USB-соединение и ссылается на путь, как видно оттуда, и я пытался придерживаться тех же относительных путей в моей прозе, чтобы упростить вещи для OP , 'getExternalFilesDir (null)' будет обрабатывать правильное расположение в терминах кода. Если вы изучаете внешнее хранилище, используя что-то другое (например, DDMS-файл-проводник, ** 'adb shell' **), тогда да, пути, которые OP и я цитирую, будут находиться под любым корнем из внешнего хранилища на этом устройстве или эмулятор. – CommonsWare

+0

Спасибо @CommonsWare, что вы мне очень помогли! Я новичок в java, поэтому я не знал этого, также благодаря другим пользователям! – ToastMan

2

При создании файла в android вам нужно добавить путь, в который вы будете создавать файл. Если вы не можете заполнить его требование, файл не будет создан.

Именно по этой причине данные возврата ur всегда являются ложными.

This link может вам помочь.

 Смежные вопросы

  • Нет связанных вопросов^_^