找不到我的应用程序中保存的本地数据文件

时间:2013-07-12 14:16:32

标签: android

这个过程起初看起来非常简单,但是我必须有一些事情可以解决这个任务。我想在我的应用程序本地创建一个设置文件,用于存储大量数据(不是偏好值得)。我最后使用以下代码片段保存文件。

protected File createSettingsFileLocation(String fileNameF)
{   
    File directoryFile = context_.getDir("settings", Context.MODE_PRIVATE);
    File settingsFile;

    settingsFile = new File(directoryFile, fileNameF);

    if (!settingsFile.exists())
    {
        try
        {
            settingsFile.createNewFile();
        } catch(IOException e)
        {
            Log.e(MyConstants.LOG_TAG, "Could not create the file as intended within internal storage.");
            return null;
        }   
    }

    return settingsFile;
}

然后通过以下代码片段在本地查找文件继续检索该文件。

public String getCurrentFileContainingSettings()
{
    List<String >settingFilesInFolder = getLocalStorageFileNames();

    if (settingFilesInFolder == null || settingFilesInFolder.isEmpty()) 
    {
        return null;
    }    

    String pathToCurrentSettingsFile = settingFilesInFolder.get(0);

    return pathToCurrentSettingsFile;
}

protected List<String> getLocalStorageFileNames()
{
    return Arrays.asList(context_.fileList());
}

但是,settingFilesInFolder始终不返回任何条目,因此我从getCurrentFileContainingSettings()返回null。正如我从documentation所看到的那样,我认为我做得对。但是,我必须遗漏一些东西,所以我希望有人可以向我指出一些事情。一旦在系统中在首选项文件中创建文件名,我就可能对文件名进行硬编码,以便在第一次创建设置时进行访问,但我不应该像我想的那样做。

1 个答案:

答案 0 :(得分:1)

fileList()仅查看getFilesDir(),而不是其子目录,例如您通过getDir()创建的子目录。改为使用标准Java文件I / O(例如,list())。

相关问题