Создание новой папки в Android Внутренняя память с другим именем после каждого запуска - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть приложение android, которое собирает данные с датчика. После каждого запуска создается группа текстовых файлов (например, A.txt, B.txt, C .txt, ...). Моя проблема после каждого запуска, все текстовые файлы перезаписываются. Я хочу создать папку с новым именем, состоящим из текущей даты и времени создания (например, 2020-02-07_11_41), а затем сохранить все мои текстовые файлы в новую созданную папку.

Извините, у меня есть очень низкое знание Android Studio. следующее является частью моего кода, который я хочу изменить:

if (b != null) {
        b.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Random r = new Random();
                int subID = r.nextInt(200000);
                // set up subject data file
                try {
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US);
                    Calendar c = Calendar.getInstance();
                    String astring = df.format(c.getTime());
                    astring = astring.replace(":", "_");
                    afilename = Environment.getExternalStorageDirectory().getPath() + "/donor_" + astring + ".txt";
                    File scdatafile = new File(afilename);
                    FileOutputStream scdataout;
                    OutputStreamWriter scdatawriter;
                    if (scdatafile.exists())
                    {
                        scdatafile.delete();
                        scdatafile.createNewFile();
                        scdatafile.setReadable(true);
                        scdataout = new FileOutputStream(scdatafile);
                        scdatawriter = new OutputStreamWriter(scdataout);
                    }
                    else
                    {
                        scdatafile.createNewFile();
                        scdatafile.setReadable(true);
                        scdataout = new FileOutputStream(scdatafile);
                        scdatawriter = new OutputStreamWriter(scdataout);
                    }
                    scdatawriter.append(" ");
                    scdatawriter.close();
                    scdataout.close();
                } catch (Exception e) {
                    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                }
                // set up time data file
                try {
                    String scdatastring = Environment.getExternalStorageDirectory().getPath() + "/sctimedata.txt";
                    File scdatafile = new File(scdatastring);
                    FileOutputStream scdataout;
                    OutputStreamWriter scdatawriter;
                    if (scdatafile.exists())
                    {
                        scdatafile.delete();
                        scdatafile.createNewFile();
                        scdatafile.setReadable(true);
                        scdataout = new FileOutputStream(scdatafile);
                        scdatawriter = new OutputStreamWriter(scdataout);
                    }
                    else
                    {
                        scdatafile.createNewFile();
                        scdatafile.setReadable(true);
                        scdataout = new FileOutputStream(scdatafile);
                        scdatawriter = new OutputStreamWriter(scdataout);
                    }
                    scdatawriter.append(Integer.toString(subID) + "\t");
                    scdatawriter.close();
                    scdataout.close();
                } catch (Exception e) {
                    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                }

1 Ответ

0 голосов
/ 07 февраля 2020

Попробуйте код ниже

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String currDate = new SimpleDateFormat("MM/dd/yyyy", Locale.getDefault()).format(new Date());
String createFolderPath = Environment.getExternalStorageDirectory().getPath() + "/yourAppName" + currDate;
FileOutputStream scdataout;
OutputStreamWriter scdatawriter;

File createFolder = new File(creatFolderPath);
if(!createFolder.exists()){
    createFolder.mkdirs();
}

String outputName = Environment.getExternalStorageDirectory().getPath() + createFolderPath + "/donor_" + timeStamp + ".txt";

scdataout = new FileOutputStream(outputName);
scdatawriter = new OutputStreamWriter(scdataout);

...
//Your Code

Я надеюсь, что это может помочь вам!

Спасибо.

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