1

winform のセットアップ ファイルを作成しました。このセットアップ ファイルを実行すると、ユーザーが指定した場所にアプリケーションがインストールされます。インストールでは、いくつかの xml ファイルもその場所にコピーされます。ユーザーがアプリケーションを実行した直後に、xml ファイルからいくつかの設定が読み取られます。

私が知りたいのは、xml ファイルの場所は柔軟 (ユーザー指定) であるため、どの場所を読み取るかをどのように知ることができるかということです。インストールされた場所から読み取る必要があることをwinformコーディングでどのように指定しますか?

4

5 に答える 5

2

Application.ExecutablePath を調べて、exe が実行されたときのパスを調べたことがありますか。これがインストールのベース ディレクトリになります。

String startingdir = Path.GetDirectoryName(Application.ExecutablePath);
foreach(String Filename in Directory.GetFiles(startingdir,"*.xml")
{
// process
}
于 2012-09-26T09:18:40.577 に答える
1

私はこれを試しました

reader = new XmlTextReader(Application.StartupPath + "\\MyFile.xml");

そして、それはうまくいきます!!

于 2012-09-26T09:59:40.230 に答える
1

XML ファイルは実行可能ファイルと同じ場所にコピーされていますか? その場合、Application.ExecutablePathWinForms アプリから を使用して実行可能ファイルの場所を取得し、そこから XML ファイルへのパスを作成できます。

于 2012-09-26T09:18:04.060 に答える
0

ファイルがexeの作業フォルダーにコピーされている場合は、相対パスでそれらをアドレス指定できます(絶対パスは必要ありません)。

編集:これは例です

XmlDocument document = new XmlDocument();
document.Load("filename.xml");

このコードは、exe ファイルを含む同じフォルダーにあるファイルfilename.xmlを読み取ろうとします。

XmlDocument document = new XmlDocument();
document.Load("somefolder/filename.xml");

これは、exeを含むフォルダーにあるフォルダーsomefolderからfilename.xmlファイルを読み取ろうとします

于 2012-09-26T09:19:39.267 に答える
0

私がお勧めする方法は、ユーザーがファイルの場所を設定できるステップをインストーラーに作成することです。それをレジストリに入れます。そして、アプリケーションにレジストリから読み取らせます

于 2012-09-26T09:20:50.710 に答える