我能夠連接Ftp服務器。我的要求是檢查登錄到服務器後將顯示的路徑是否可在ftp服務器中寫入。 下面的代碼不檢查File remotefile = new File(pwd)
如何檢查文件可從java寫入FTP服務器
public StringBuffer verifyMath(String host, String uname, String password, String cType){
String MathString = "FTPHost:[" + host + "];uname[" + uname + "];cType[" + cType + "]";
StringBuffer mBuffer = new StringBuffer();
FileInputStream fis = null;
FTPClient client = new FTPClient();
try {
client.connect(host);
boolean login = client.login(uname, password);
client.getReplyCode(); //230
if (login == true) {
log.debug("Connection established...");
String pwd = client.printWorkingDirectory();
File remotefile = new File(pwd);
boolean rmtfile = remotefile.canWrite();
boolean rmtdir = remotefile.isDirectory();
if(!(remotefile.isDirectory() && remotefile.canWrite())) {
mBuffer.append(MathLogger.raiseError(MathString, "Math is not Writable"));
}
boolean logout = client.logout();
if (logout) {
log.debug("Connection close...");
}
} else {
mBuffer.append(MathLogger.raiseError(MathString, "Connection failed."));
}
} catch (IOException e) {
mBuffer.append(MathLogger.raiseError(MathString, e));
} finally {
try {
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
return mBuffer;
}
嘗試上載的東西,看看會發生什麼。 FTP協議不支持獲取讀/寫狀態。你所能做的就是試着看看它是否成功/失敗。 –
受限制。因爲當文件放在FTP服務器上時,會有一些觸發器會導致其他系統出現問題 – mahesh
您能否寫一些運行在FTP主機上的web服務器來返回文件的寫入狀態?正如MarcB所說,本地FTP不會傳輸這些信息。 – admdrew