2016-12-05 7 views
0

実行可能ファイルの上のフォルダ内にファイルパスを作成しようとしています。たとえば、変数TAGPATHを、アプリケーションがC:\User\ApplicationFolder\AppFilesの間に、フォルダC:\User\ApplicationFolder\tag_rw\tag_rw.exeの実行可能ファイルへのファイルパスにしたいとします。私はアプリケーションがポータブルであることを願っています。フォルダ名に関係なく、アプリケーションの実行ファイルのファイルパスを取得し、親フォルダに移動してtag_rw\tag_rw.exeにナビゲートします。実行可能ファイルからフォルダを移動する

私は基本的にここでstring TAGPATH = @"path_to_appfolder\\tag_rw\\tag_rw.exe"

は、私がこれまでに(最初の答えHow to navigate a few folders up?を使用して)疲れて持っているものであるとします

string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 
    string TAGPATH = System.IO.Path.GetFullPath(System.IO.Path.Combine(appPath, @"..\")); 

私が説明URI formats are not supported.

で実行時エラー ArgumentExceptionを取得しています

これについてもっと簡単に/より良い方法がありますか?

ありがとうございました!

+0

あなたの質問を誤解していない場合は、単に**親ディレクトリ**を取得したいですか? –

+0

はい。ちょうどそれが長い段落の代わりに言ったのでしょうか?また、最初の親ディレクトリの親ディレクトリも取得するのが良いでしょう。 – NM24

答えて

1

これを試すことができますか?

static void Main(string[] args) 
    { 
     string cur = Environment.CurrentDirectory; 
     Console.WriteLine(cur); 
     string parent1 = Path.Combine(cur, @"..\"); 
     Console.WriteLine(new DirectoryInfo(parent1).FullName); 
     string parent2 = Path.Combine(cur, @"..\..\"); 
     Console.WriteLine(new DirectoryInfo(parent2).FullName); 
     Console.ReadLine(); 
    } 
+0

完全に動作します。ありがとうございました。 – NM24

+0

それを聞いてうれしい! –

1

ナビゲーションは、絶対および相対タイプに限定されます。アプリケーションの場所全体にかかわらず、親ディレクトリに移動することを意味すると思います。 多分あなたは相対パスを試してみる

string TAGPATH = "..\\tag_rw\\tagrw.exe" 
関連する問題