我正在将文件“LICENSE.txt”从我的 PC 上传到 Android WebServerApp。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 可以写入,那么为什么我无法移动文件?