Создание подкаталогов внутри каталога и возможность сохранять в нем данные

Я новичок в разработке Android, и мне нужна помощь. У меня есть две проблемы, а именно:

  1. Я не знаю, как создать два подкаталога внутри моего основного каталога. Я знаю, как создать подкаталог внутри каталога (File directory = new File(Environment.getExternalStorageDirectory()+"Saling-Wika/Audio&Text Files");), но я хочу, чтобы внутри моего основного подкаталога было два подкаталога (аудиофайлы и текстовые файлы — это два разных подкаталога внутри каталога Saling-Wika, который является основной каталог).
  2. Я не знаю, как я смогу сохранить свои данные в созданных мной подкаталогах. Вот код моего модуля записи, откуда поступают аудиоданные:

    public class RecordModule extends Activity {
    
    Button SpeakBtn, StopBtn;
    private MediaRecorder myAudioRecorder;
    private String outputFile = null;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recordmodule);
    
        SpeakBtn = (Button) findViewById(R.id.SpeakBtn);
        StopBtn = (Button) findViewById(R.id.StopBtn);
    
        StopBtn.setEnabled(false);
        SpeakBtn.setEnabled(true);
        SimpleDateFormat datetime = new SimpleDateFormat("ddMMyyyyhhmmss");
        String format = datetime.format(new Date());
        outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + format + ".3gp";
    
        myAudioRecorder = new MediaRecorder();
        myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
        myAudioRecorder.setOutputFile(outputFile);
    
        SpeakBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    myAudioRecorder.prepare();
                    myAudioRecorder.start();
                }
    
                catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
                catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
                SpeakBtn.setEnabled(false);
                StopBtn.setEnabled(true);
    
                Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_SHORT).show();
            }
        });
    
        StopBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myAudioRecorder.stop();
                myAudioRecorder.release();
                myAudioRecorder = null;
    
                StopBtn.setEnabled(false);
                SpeakBtn.setEnabled(true);
    
                Toast.makeText(getApplicationContext(), "Audio recorded successfully", Toast.LENGTH_SHORT).show();
            }
        });
    }
    

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


person John Randall Castillo    schedule 13.02.2016    source источник
comment
Хорошо сделайте свои подкаталоги отдельно. Ваш вопрос такой странный. Если вы можете создать подкаталог, то вы можете создать еще один, я думаю.   -  person greenapps    schedule 14.02.2016
comment
Наконец-то я поработал над созданием подкаталогов отдельно, так что первая проблема решена. Как насчет второго? Ты поможешь мне? @greenapps   -  person John Randall Castillo    schedule 14.02.2016
comment
Что ж, похоже, вы приказали myAudioRecorder сделать это. Это правда? Тогда почему ты так не сказал? Вы также забыли рассказать, что сейчас происходит. Где вы указываете правильный каталог для вашего рекордера?   -  person greenapps    schedule 14.02.2016
comment
Я в замешательстве, @greenapps. Да, myAudioRecorder делает это. Что вы имеете в виду под тем, где я указываю правильный каталог своему рекордеру?   -  person John Randall Castillo    schedule 14.02.2016


Ответы (1)


Я наконец решил свои проблемы, и вот решения, которые я сделал:

String folder_main = "Saling-Wika"

File MainDir = new File (Environment.getExternalStorage();, folder_main);
if (!MainDir.exists()){
   MainDir.mkdirs();
}

File f1 = new File (Environment.getExternalStorage() + "/" + folder_main, "Audio Files");
if (!MainDir.exists()){
   MainDir.mkdirs();
}

File f2 = new File (Environment.getExternalStorage() + "/" + folder_main, "Text Files");
if (!MainDir.exists()){
   MainDir.mkdirs();
}
}

Вот код, как я создал два подкаталога (папки с аудио и текстовыми файлами) внутри основного каталога (Saling-Wika fodler).

outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Saling-Wika/Audio Files/" + format + ".3gp";

А вот как мои аудиофайлы сохраняются в папке «Аудиофайлы».

person John Randall Castillo    schedule 14.02.2016