我想知道文件是否存在。我已经创建了它并与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);
}
问题是android给我的路径不正确,因为xml文件不在“文件”中。它在“ shared_prefs”中
如何获取文件的真实路径?
答案 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版本和所有设备上正常工作。