Динамически создавая каталог во внутреннем хранилище на android и записывая в него файл - PullRequest
0 голосов
/ 29 марта 2020

В настоящее время я пытаюсь динамически создать два каталога в каталоге файлов внутреннего хранилища android и записать файл json в каждый вложенный каталог.

структура папок будет такой:

internal-storage
- files
  - usersFullName
    - sensorName1
      - senor1Files
    - sensorName2

Я в основном стремлюсь сделать так, чтобы имя пользователя было папкой root в каталоге файлов во внутреннем хранилище, а затем иметь подкаталоги для каждого конкретного c данных, а затем файлов, соответствующих каждому подкаталогу.

Вот код, пытающийся выполнить эту задачу. Я пробовал другой сценарий ios, и это мой самый последний.

    /**
     * Method to write the dataReadResponse from google fit into a file
     * @param dataReadResponse the response from google fitness
     * */
    public static void writeToFile(DataReadResponse dataReadResponse, String sensorName) {
        Log.d(TAG, "writeToFile: Writing to file");
        // create the dir path
        String dirPathName = GoogleSignIn.getLastSignedInAccount(AppBuild.getContext()).getFamilyName();
        // create a dir with the user name
        File userDir = new File(dirPathName);

        userDir.mkdirs();
        File dataDir = new File(userDir.toString() + "/" + sensorName);

        dataDir.mkdirs();

        String filename = String.format("google_fit_" + sensorName +"_%d.json", new Date().getTime());
        String fullPath = dataDir.toString() + "/" + filename;

        try {

            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(AppBuild.getApplication().openFileOutput(fullPath, Context.MODE_PRIVATE));
            Gson gson = new GsonBuilder().create();
            gson.toJson(dataReadResponse.getDataSets(), outputStreamWriter);
            outputStreamWriter.close();
        }
        catch (IOException e) {
            Log.e("Exception", "File write failed: " + e.toString());
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...