2011-02-10 4 views
0

ビジュアルスタジオプロジェクトに「myFolder」フォルダを追加しましたが、現在の場所からファイルを実行して読み込むにはどうすればいいですか?私のアプリケーションパスはどこですか?

。\ < - これは機能していないようですか?

1)

System.Diagnostics.ProcessStartInfo start = new System.Diagnostics.ProcessStartInfo(); 
    start.FileName = @".\myFolder\app.exe" + " -q " + "http://www.google.com " + " output.pdf"; 
    start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 

等...等...

2)

FileStream fs = File.OpenRead(@".\myFolder\output.pdf"); 

答えて

1

ソリューションエクスプローラを使用して作成されたフォルダは、そのディレクトリ内のプロジェクトに追加されたアイテムに[出力ディレクトリにコピー]値が設定されていない限り、出力ディレクトリ(実行可能ファイルが存続する場所)コピーしないでください。ソリューションエクスプローラを使用して空のディレクトリを作成した場合、そのディレクトリは出力パスに存在しない可能性があります。

このコードはsicnificant例外処理は、このコードに含まれていないことをアプリケーション

var directoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "YourDirectoryName"); 
     if (!Directory.Exists(directoryPath)) 
      Directory.CreateDirectory(directoryPath); 

ノートの出力パスにディレクトリを作成し、I/Oが1を実行することができ、より例外がちな活動の一つであります十分なエラー処理があることを確認してください。

ビルドプロセスの一部として作成されたディレクトリを持っていると思った場合は、外部のビルドコマンドとしてmkdirを実行したり、MakeDir MSBuild Task

を使用して見て可能性のいずれか
1

あなたはバイナリが含まれているディレクトリを取得するためにSystem.AppDomain.CurrentDomain.BaseDirectoryを使用することができます。そこからあなたのサブディレクトリに移動することができます。

プロジェクトに追加したフォルダのファイルのプロパティウィンドウで[出力ディレクトリにコピー]を選択していることを確認してください。アプリケーションをコンパイルするときにbinディレクトリにコピーされます。