1

いくつかのサイト リンクを保存するファイルがあります。今まで私は使用しました:

string path = Environment.CurrentDirectory + "/forumlinks.txt";

しかし、ファイルをリリースフォルダーに保存して、変更できるようにしたいのですが、ユーザーにとって永久に変更されることがわかっています。

だから私はこれに変更しました:

string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"/forumlinks.txt";

しかし、例外があります:

System.IO.FileNotFoundException。

私の質問: これは、リリース フォルダーからファイルを取得する正しい方法ですか? それを考え直して、彼を別の場所に保管する必要がありますか?もしそうなら、私はそれについて聞いてうれしいです.

4

4 に答える 4

4

に電話する必要がある理由がわかりません

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

まったく。これはトリックを行います:

AppDomain.CurrentDomain.BaseDirectory
于 2012-10-17T21:47:45.193 に答える
1

フォワード / はタイプミスだと思います。テスト ファイルをプロジェクトに追加した場合は、そのプロパティを確認します。新しい場合はコピーする必要があります。常にコピーして bin\Debug または bin\Release に配置し、exe と dll およびその他のガビンと一緒に配置します。

アプリケーションを再構築することなく、ファイルを変更する何かを計画しているのですか?

于 2012-10-17T21:46:21.523 に答える
1

コード リリース フォルダーへのパスをハード コーディングすることは危険です。何らかの理由でデバッグ モードでビルドしたい場合はどうすればよいでしょうか。プログラムを展開したい場合はどうなりますか?

環境のアプリケーション データ フォルダーを使用することをお勧めします。これはユーザーごとに異なるため、各ユーザーは独自のバージョンのファイルを持つことができます。

アプリケーション データ フォルダーを取得する方法の詳細については、この投稿を参照してください。

于 2012-10-17T21:50:04.783 に答える
0

私は間違いを犯し、このコードを使用するのが正しいことがわかりました:

string path =  System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\fourmlinks.txt";

ファイルの正しい名前を入力しても、ファイルが正しい場所にないことを意味する例外が発生する場合。

于 2012-10-17T21:46:11.347 に答える