如何获得文件所在的真实路径?

时间:2019-02-25 11:16:04

标签: android xml path

我想知道文件是否存在。我已经创建了它并与sharedPreferences存储在一起,但是Android并没有为我提供真正的途径。

public class SplashScreen extends AppCompatActivity
{
   super.onCreate(SavedInstanceState);
   setContentView(R.layout.activity_splash_screen);
   String FILE_NAME = "configAjustes.xml";

   new Handler().postDelayed(() -> {
      File file1 = new File(getApplicationContext().getFilesDir().getPath(),FILE_NAME);
      Log.d("fc","file1 is "+file1);
      Log.d("fc","file1 name is "+file1.getName);

      if(file1.exists())
      {
         Log.d("fc","exists");
         Intent inMain = new Intent (getApplicationContext(),MainActivity.class);
         startActivity(inMain);
         finish();
      }else
      {
         Log.d("fc","not exists");
         Intent inSettings= new Intent(getApplicationContext(),Settings.class);
         startActivity(inSettings);
         finish();
      }
   },2000);
}

我得到以下信息: screen output

问题是android给我的路径不正确,因为xml文件不在“文件”中。它在“ shared_prefs”中 true path of file

如何获取文件的真实路径?

1 个答案:

答案 0 :(得分:2)

通常,我们不将SharedPreferences视为文件,并且没有直接可靠的方式将它们作为文件访问。

最接近的解决方案是:

File prefsDir = new File(getApplicationInfo().dataDir,"shared_prefs"); 
File file1 = new File(prefsDir, FILE_NAME);

或者可能:

File dataDir = getFilesDir().getParentFile();
File prefsDir = new File(dataDir,"shared_prefs"); 
File file1 = new File(prefsDir, FILE_NAME);

但是,不能保证它们可以在所有Android OS版本和所有设备上正常工作。