0


0

C#プログラムのインストールにバンドルしたファイルを読み込むにはどうすればよいですか?

私はこのようなことをする必要があります:

    StreamReader reader =
new System.IO.StreamReader(@"C:\Program Files\The Awesome Program That I Made\awesomeloadablefile.ldf");

ユーザーがプログラムをインストールした場所がわからない場合を除きます。 私のプログラムは、インストールされたファイルがどこにあるかをどのように知ることになっていますか?

あなたが気づいていない場合のために、私は初心者です。

6 Answer


3


http://msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx [Assembly.GetEntryAssembly().Location]を使用して、実行可能ファイルhttpのディスク上のパスを取得できます。 ://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx [Path.GetDirectoryName]でその中のディレクトリを取得してから、http://msdn.microsoft.com/ en-us / library / fyy7a5kt.aspx [Path.Combine]を使用して、ディレクトリ名とそのディレクトリ内のファイル名を結合します。 So:

StreamReader reader = new System.IO.StreamReader(Path.Combine(
    Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),
    "awesomeloadablefile.ldf"));


1


このようなことを試してください。

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly()。Location);


0


`Assembly.GetExecutingAssembly()。Location`のようなものが動作するはずです。


0


あなたはこれを試すことができます:

 File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "awesomeloadablefile.txt");


0


実行可能ファイルに関連するディレクトリ構造がわかっていると仮定すると、 `Application.StartupPath`を使用できます。

string path = Path.Combine(Application.StartupPath, "awesomeloadablefile.ldf");
StreamReader reader = new System.IO.StreamReader(path);


0


これにより、exeディレクトリへのパスが取得されます。 私はそれがあなたがファイルを置くことにした場所だと仮定しています。 それ以外の場合は、インストーラでその場所を指定できます。 Visual Studioインストーラーを使用していますか?

Application.StartupPath