2012-11-14 70 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

您的版本给了我这个错误 –