【发布时间】:2014-01-19 02:34:48
【问题描述】:
我正在将文件“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 可以写入,为什么我无法移动文件?
【问题讨论】: