在目录中创建子目录并能够将数据保存到其中

时间:2016-02-13 15:35:26

标签: android audio directory saving-data

我是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();
            }
        });
    }
    
  3. 我希望我的音频数据将存储到音频文件目录中,但我不知道我将如何做到这一点。请帮帮我。

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题,以下是我所做的解决方案:

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";

以下是我的音频文件保存到Audio Files文件夹的方式。