0

一部のデータを保存するためにアプリ用のパブリックフォルダを作成しようとしています。 私の目標は、データを保存するために現在の日付に基づいて名前が付けられたメインフォルダとサブフォルダを作成することです。データはPC経由でアクセス可能であると想定されています。 問題は、電話[画像1](Bluetoothファイル転送アプリケーションを使用)を介してファイルにアクセスするときにすべてが機能している間に、PCがサブフォルダ[画像2]を認識できないことです。パブリックファイルをアンドロイドに保存していますが、PCからフォルダにアクセスすることはできません

[画像1]すべての多くのことを試してみました、私は多くの答えを見てきました enter image description here

PCに認識されていない携帯 Image 1

[画像2]サブフォルダに取り組んが、解決策を見つけていません。 私のコードは次のとおりです。

public void createFile() { 
    calendar_time = Calendar.getInstance(Locale.getDefault()); 
    int hour = calendar_time.get(Calendar.HOUR_OF_DAY); 
    int minute = calendar_time.get(Calendar.MINUTE); 
    int second = calendar_time.get(Calendar.SECOND); 
    String time=String.valueOf(hour)+":"+String.valueOf(minute)+":"+String.valueOf(second); 
    String sFileName=date+" "+time+" Part "+String.valueOf(file_counter)+".txt"; 

    try { 
     File root = new File(Environment.getExternalStoragePublicDirectory(
       Environment.DIRECTORY_DOCUMENTS), "Main folder/"+date); 
     if (!root.exists()) { 
      root.mkdirs(); 
     } 

     root.setExecutable(true); 
     root.setReadable(true); 
     root.setWritable(true); 
     MediaScannerConnection.scanFile(context, new String[] { root.toString() }, null, 
       new MediaScannerConnection.OnScanCompletedListener() { 
        public void onScanCompleted(String path, Uri uri) { 
        } 
       }); 

     File myfile = new File(root, sFileName); 
     writer = new FileWriter(myfile); 
     writer.append("Unit\n\n"); 
     writer.append("#\tValue \tX \tY \tZ \tTime\n\n"); 
     readyToRecord=true; 
    } catch (IOException e) { 
     e.printStackTrace(); 
     Toast.makeText(context, "Error creating file", Toast.LENGTH_SHORT).show(); 
     stop(); 
    } 
} 

私はそれは、彼らがパスとファイルを作成するための責任を負いませんので、私は私の他の機能が含まれていない

root.setExecutable(true); 
     root.setReadable(true); 
     root.setWritable(true); 
     MediaScannerConnection.scanFile(context, new String[] { root.toString() }, null, 
       new MediaScannerConnection.OnScanCompletedListener() { 
        public void onScanCompleted(String path, Uri uri) { 
        } 
       }); 

役立つだろう読んでいるので、私は次のコードを追加しました。 私があなたを助けてくれることを願っています。 はないroot、スキャンmyfileあなた

答えて

0

をありがとう、あなたはに書き込まれ、あなたFileWriterを閉じた後にのみ。

+0

残念ながら、それは何の違いもありませんでした。 – mremremre1

+0

私は別のデバイスで試してみます – mremremre1

+0

あなたの提案といくつかの異なる方法でそれを修正しました。ありがとうございました – mremremre1

1

解決策が見つかりました。私はgetExternalStorageDirectoryの使用もgetExternalStoragePublicDirectoryとは異なり、すべてのAndroidのバージョン( Environment.DIRECTORY_DOCUMENTS)

CommonsWareの答えから部品が必要である上で動作

 File root = new File(Environment.getExternalStorageDirectory()+ "/Main folder/"+date); 
     if (!root.exists()) { 
      root.mkdirs(); 
     } 
     myfile = new File(root.getAbsolutePath(), sFileName); 
     writer = new FileWriter(myfile); 
にコードを変更します。

関連する問題