なぜ新しいファイルを作成できないのですか?パスが正しくないことが原因であるかどうか、またそうでない場合は問題が私のサーバーにあるのだろうかと思います。新しいファイルを作成できないのはなぜですか、パスまたはパス名の区切り記号が正しいのですか?
私のコード:
public static final String separator = "" + separatorChar;
public static final char separatorChar = fs.getSeparator();
public char getSeparator() {
return slash;
}
class Win32FileSystem extends FileSystem {
private final char slash;
private final char altSlash;
private final char semicolon;
public Win32FileSystem() {
slash = ((String) AccessController.doPrivileged(
new GetPropertyAction("file.separator"))).charAt(0);
semicolon = ((String) AccessController.doPrivileged(
new GetPropertyAction("path.separator"))).charAt(0);
altSlash = (this.slash == '\\') ? '/' : '\\';
}
private boolean isSlash(char c) {
return (c == '\\') || (c == '/');
}
private boolean isLetter(char c) {
return ((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'));
}
private String slashify(String p) {
if ((p.length() > 0) && (p.charAt(0) != slash)) return slash + p;
else return p;
}
私は、パスを記述するために、特にどのように、作成したファイルについて混乱しています:以下
String signaturePath = pathService.getStringByKey(myConstants.REPORT_PATH) + File.separator + "hos_log" + File.separator + params.get("driver");
System.out.println(signaturePath);//it print this: /home/www/MyServer/report/\my_log\jo
String fileName = shortDate + ".jpg";
File file = new File(signaturePath + File.separator + fileName);//file debuged out : \home\www\MyServer\report\my_log\jo\20160601.jpg
dataMap.put("shortDate", shortDate);
dataMap.put("driverId", driverLog.getUserId());
if (file.exists()) {//false.and i go to the sever,there is no such file created.
dataMap.put("icon", "yes");
}else{
dataMap.put("icon", "no");
}
results.add(dataMap);
とは、セパレーターのための方法のコードです。
は今、私は右のそれは例外が一度コンソールに印刷された例外によってシャットダウンしかし
File file = new File(signaturePath + File.separator + fileName);
の下
file.createNewFile();
を追加するが、それはもう印刷されていなかった、とファイルがまだあります重複して作成されていません。 新しいサーバーをTomcatに再デプロイする前のコードは正しいので、@maskacovnikの回答から情報を得たので、ファイルがどのように作成されたのか分かりません。
======== ========================================== ======= 問題は、myConstants.REPORT_PATHが指しているパスが間違っていることが原因であることが判明しています。私が示すコードは問題ありません。しかし、ファイルがどのようにあるのかはまだ分かりません。何
file.createNewFile();
これは私の同僚のコードです。彼はここでは働いていません。このコードに割り当てられるのは新しいですが、なぜファイルが作成できないのかわかりません。 – daxue
例外がなければ助けません。 。表示される場合は、ログを追加します。例外がない場合は作成する必要があるので、奇妙です。 – maskacovnik