1

PC から Android WebServerApp にファイル「LICENSE.txt」をアップロードしています。NanoHTTPD は一時ディレクトリを使用して、アップロードされたファイルを保存します。一時的な場所は次のように決定されます。

    tmpdir = System.getProperty("java.io.tmpdir");

私の場合、ファイルは/data/data/com.manmohan.mynanoserver/cache/NanoHTTPD-1736025823としてアップロードされます。

アップロード後、ファイルを SD カード「/storage/extSdCard/Uploads」に移動したいと考えています。

これが私がすることです:

        String tempFileName = entry.getValue().toString();
        File fileToMove = new File(tempFileName); // temp file path returned by NanoHTTPD

        String p = "/storage/extSdCard/Uploads";
        String newFile = p + "/LICENSE.txt";
        File nf = new File(newFile); // I want to move file here

        if (fileToMove.canWrite()) {
            boolean success = fileToMove.renameTo(nf);
            if (success == true) {
                // LOG to console
                Log.i("FILE_MOVED_TO", newFile);
            } else {
                Log.e("FILE_MOVE_ERROR", tempFileName);
            }
        } else {
            Log.e("PERMISSION_ERROR_TEMP_FILE", tempFileName);
        }

/data/にアクセスできません。. . ディレクトリとその中のファイル、およびファイルを移動しようとするとエラーが発生します。

しかし、この一時的なパスは機能します:

    tmpdir = "/storage/extSdCard/temp-uploads-nanohttpd";

java.io.tmpdirの何が問題になっていますか? NanoHTTPD が書き込みできる場合、ファイルを移動できないのはなぜですか?

4

1 に答える 1