我将 C# 应用程序设置为在服务器上运行的远程应用程序。
当应用程序运行时,我从 System.Environment 中获取 MyDocuments 文件夹,以保存用户生成的文件。我返回的 MyDocuments 的路径自然是服务器上的路径。
有没有办法获取客户端机器的 MyDocuments 文件夹路径?或者至少以某种方式获取调用远程应用程序的机器的名称(或 IP)?
找到了解决方案。
可以使用 \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
如果这些都不存在,那么我使用远程应用程序的“服务器”上的文件夹。
不是最优雅的,但它有效。