2012-11-14 114 views
-2

幫助,使這樣的事情(在以前的答案,有人告訴我,我解釋不好,現在試圖解釋poponyatneee)我有一個表格,只是一種形式,它的代碼是:擺脫文件擴展名?

<form action="searchf" method="Post"> 
<input type="text" name="text" autofocus > 
<input type="submit" value=""> 
</form> 

用戶在這個表單中輸入不同的文件名,如:index.txt,hello.html(文件名不重複,基本上是txt文件)。接下來,該servlet需要字符串用戶輸入:

String myName = request.getParameter("text"); 

繼續程序調用輸入文件中查找該文件夾中的文件,但事實是,它是需要輸入index.html程序來查找文件中該文件夾,而不僅僅是指數,這裏的幫助下進入延長不一定試圖這樣做:

String myNamee = request.getParameter("text"); 
String myName = myNamee.replaceFirst("[.][^.]+$", ""); 

它沒有工作(我會很高興的任何答覆

埃裏克·斯科特

+0

我寫道程序在一個特定的目錄中查找輸入的數據 –

+1

注意:將變量命名爲myNamee和myName是個不錯的主意,很容易使用帶有拼寫錯誤的錯誤變量。例如,嘗試'inputFileWithExt'和'inputFile'。 –

+1

您是否期望用戶使用擴展名提供文件名? –

回答

0

如果您需要從文件名的文件擴展名分開,你可以做這樣的事情:

String file = request.getParameter("text"); 
String fileNoExt, fileExt = ""; 
if(file.indexOf(".") == -1) { 
    fileNoExt = file; 
else { 
    fileNoExt = file.substring(0,file.lastIndexOf(".")); 
    fileExt = file.substring(file.lastIndexOf(".")+1); 
} 

我建議您在Servlet的上下文之外測試此代碼。只需使用main方法創建一個簡單的Java程序來搜索文件目錄,並且您可以忘記用戶輸入和表單信息。只需硬編碼一些測試數據,以確保您知道如何查看目錄,並且處理文件名的代碼工作正常。

您可能會發現此other stack overflow question有助於瞭解如何通過文件目錄進行搜索。

+0

謝謝你現在嘗試 –

+0

你的選擇沒有奏效( –

+1

@EricScot - 解釋你自己,在什麼意義上不起作用?有什麼症狀? ?錯誤 –

0

爲什麼不從最後一個點的名義切出一切到最後:

final String baseName = fileName.substring(0, fileName.lastIndexOf(".")); 
+0

謝謝你會嘗試,你不會消失) –

+0

'String myName = request.getParameter(「text」); final String baseName = myName.substring(0,myName.lastIndexOf(「。」));' –

+0

您的版本給了我這個錯誤 –