-1

Storage Access Framework でディレクトリを開くことができました。SAF はUri開いたディレクトリに戻ります。そのディレクトリ内のファイルを開こうとするFileNotFoundExceptionと、ファイルが存在することさえわかります(確認しました)。

明らかに私は何か間違ったことをしています。これは私がやろうとしていることの例です:

@TargetApi(Build.VERSION_CODES.KITKAT)
public void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode != SELECT_FILE_REQUEST || resultCode != Activity.RESULT_OK) return;
    if(data == null) return;

    //get uri
    Uri uri = data.getData(); // uri returnded form Intent.ACTION_OPEN_DOCUMENT_TREE
    File file = new File(uri.getPath(), "text.txt");

    //Read text from file
    StringBuilder text = new StringBuilder();
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        while ((line = br.readLine()) != null) {
            text.append(line);
        }
        br.close();
    }catch (IOException e) {
        Log.e("error", e.toString()); //java.io.FileNotFoundException: /tree/primary:test/text.txt: open failed: ENOENT (No such file or directory)  
    }
}
4

1 に答える 1