2011-08-12 41 views
2

我创建了一个可读取.txt文件的小程序。管理绝对路径和完整路径

此文件包含此格式的new_file.txt

的目标是回到了新的文件的路径链接到另一个文件,所以基本上我这样做:

String newFileName = getFileName(); 
int index = oldFilePath.lastIndexOf('\\'); 
String path = oldFilePath.substring(0, index + 1); 
String newFilePath = path + newFileName; 
return newFilePath; 

例如:

我打开第一个文件是:C:\a\b\c\oldFile.txt

在这个文件中,我发现newFile.txt

所以新的路径将是:C:\a\b\c\newFile.txt

不错,但如果我觉得是这样的:

..\.\.\...

有什么办法来自动完成这个烂摊子?

感谢

回答

1

您已经标记了这个如Java以及C#

在java中看看FileNameUtils http://commons.apache.org/io/apidocs/org/apache/commons/io/FilenameUtils.html

的标准化的方法应该帮助

+0

问题不在于删除双点和单点路径步骤,而是要返回路径并选择正确的文件夹。 –

+1

您可以使用java.io.File中的方法来获取文件的名称,getParentFile将获得父目录。你应该可以使用FileNameUtils来获得你的路径吗? – reevesy

5

在C#/。NET你有相当酷的Path class

您可以使用Path.GetFullPath(string pathname)来解析路径,例如其中有\..\等。

使用Path.GetDirectory()Path.GetFileName()Path.GetFileNameWithoutExtension() & Path.GetExtension()拉开名称和Path.Combine()再次把他们重新走到一起。