1

サーバー上で実行されるリモート アプリとして C# アプリケーションをセットアップしています。

アプリケーションの実行時に、ユーザーが生成したファイルを保存するために、System.Environment から MyDocuments フォルダーを取得します。私が取得した MyDocuments のパスは、当然サーバー上のものです。

代わりに、クライアント マシンの MyDocuments フォルダー パスを取得する方法はありますか? または、少なくともリモート アプリを呼び出したマシンの名前 (または IP) を取得する方法はありますか?

4

1 に答える 1

1

解決策を見つけました。

クライアント マシンには、\tsclient\\... を使用してアクセスできます。

最初に、アプリケーションの MyDocuments パスを Environment.SpecialFolder.MyDocuments にデフォルト設定します。これはもちろん、リモート アプリの「サーバー」であるマシンです。次に、クライアント マシン上の次のフォルダーの存在と書き込みアクセス レベルを確認します。

\\tsclient\C\Users\<username>\Documents
\\tsclient\C\Users\<domainname>.<username>\Documents
\\tsclient\D\Users\<username>\Documents
\\tsclient\D\Users\<domainname>.<username>\Documents

そしてXPの場合...

\\tsclient\C\Documents and Settings\<username>\Documents
\\tsclient\D\Documents and Settings\<username>\Documents

それらのいずれも存在しない場合は、リモート アプリの「サーバー」上のフォルダーを使用します。

最もエレガントではありませんが、機能します。

于 2013-04-29T20:09:05.330 に答える