2011-08-12 6 views
2

私は、.txtファイルを読むことができる小さなプログラムを作成しました。例えば絶対パスとフルパスを管理する

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

このファイルはとても基本的に私はこれをやっている、この形式new_file.txt

目標は、新しいファイルのパスを返すことです内の他のファイルへのリンクが含まれています。

私は開かれた最初のファイルがある:私はnewFile.txtを見つけ、このファイルにC:\a\b\c\oldFile.txt

だから、新しいパスは次のようになります。C:\a\b\c\newFile.txt

ニース、しかし、私はこのような何か見つけた場合:

..\または.\.\または...

をこの混乱を自動化する方法はありますか?

おかげ

答えて

1

あなたは、javaと同様、/。ネットあなたが持っているFileNameUtils http://commons.apache.org/io/apidocs/org/apache/commons/io/FilenameUtils.html

であるJava Lookでは#

normalizeメソッドは、C#では

+0

問題はダブルドットとシングルドットのパスステップを削除することではなく、パスに戻って正しいフォルダを選択することです。 –

+1

java.io.Fileのメソッドを使用してファイルの名前を取得すると、getParentFileは親ディレクトリを取得します。パスを取得するには、FileNameUtilsでこれらを使用できるはずです。 – reevesy

5

を助けるべきであるCのようにこれをタグ付けしましたやや涼しいPath class

Path.GetFullPath(string pathname)を使用してパスを解決できます。その中に\..\などがあります。

使用Path.GetDirectory()Path.GetFileName()Path.GetFileNameWithoutExtension() & Path.GetExtension()再び一緒にそれらを元に戻すために離れて名前とPath.Combine()を引きます。