2017-05-01 6 views
0

どこからでも実行できる環境パスにあるコンソールアプリケーションがあります。ファイルがC#コンソールアプリケーション、argsにファイルへの正しいパスを取得するもっとも安全な方法

File.Exists(args[0]) 

を終了し、ディレクトリからのIFユーザーが

Program filename 

は、ファイルが存在する私に教えてくれます。 しかし、引数を渡すときに[0]には、ファイル名だけであるので、私はそのC#の前に付加を仮定するつもりです:

Environment.CurrentDirectory 

アプリケーションは、どこからでも実行することができ、コマンドラインが多くを持つことができるため相対パスから絶対パスへの可能な入力の可能性私は、ファイルが存在する適切なディレクトリを得るための最も安全な方法は何か疑問に思っています。

以下はうまくいくようですが、私が何かを見逃していると思っていますが、それはより良い方法です。

string dir = Path.GetDirectoryName(args[0]); 
if (String.IsNullOrEmpty(dir)) 
dir = Environment.CurrentDirectory; 

事前に感謝します。

答えて

3

Path.GetFullPath(args[0])を使用すると、ファイル名がフルネームに解決されます。

+0

ありがとうございました。 – Eddie

+1

@Eddieもし彼があなたのためにそれを解決したら、それを答えとしてマークしてください。 – prospector

関連する問題