1

に HTML ファイルがありますC:\Users\myusername\AppData\Roaming\myapp\file.html。C# アプリケーションの Web ブラウザーを介してファイルにアクセスし、アプリ内からプレビューしています。
ただし、アプリを別のコンピューターに配置すると、webBrowser1 のアドレスはまだユーザー名に固有であるため、他のユーザーはプレビューにアクセスできません。

URL にハードコードされたユーザー名を使用せずに、Web ブラウザで URL としてファイルにアクセスする方法はありますか?

私が試したこと:

  1. C:\Users\%USERNAME%\AppData\Roaming\myapp\file.html
  2. C:\Users\AppData\Roaming\myapp\file.html

ありがとう!

助けられた後に使用したコードは次のとおりです。

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string address = Path.Combine(folderPath + @"\myapp\file.html");
webBrowser1.Navigate(address);
4

2 に答える 2

7

現在ログインしているユーザーの名前を取得する場合は、Environment.UserNameプロパティを読み取る必要があります。

さらに、ローミング ユーザーのディレクトリにアクセスする必要がある場合は、何もハードコーディングせずにフォルダー パスを取得できます (ユーザー ディレクトリは常にすべての Windows バージョンにあるとは限らず、パスも異なる場合があることAppDataを忘れないでください)。c:\usersAppData

string folderPath = Environment.GetFolderPath(
    Environment.SpecialFolder.ApplicationData);

あなたの場合、ファイル名を追加するだけです:

string url = Path.Combine(folderPath, "file.htm");

何らかの
理由で環境変数を使用する必要がある場合は、最初にそれらを展開する必要があります。

string path = Environment.ExpandEnvironmentVariables(@"C:\Users\%USERNAME%\");
于 2012-07-06T11:58:20.313 に答える
1

この関数を見てください。現在のユーザーのアプリケーション データ フォルダーのパスを返します。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
于 2012-07-06T11:59:01.687 に答える