// Set default workspace directory
string initialDirectoryString = @"C:\work\";
// Check if remote session, and get the local drive location
if(System.Windows.Forms.SystemInformation.TerminalServerSession) {
initialDirectoryString = @"\\tsclient\C\work\";
}
最初,当我编写上述代码时,我的印象是我们可以创建一个目录C:\
来写入,但据我所知,他们唯一可以访问的位置是My Documents
目录。
所以,我知道我可以通过以下方式检索本地Environment.SpecialFolder
:
string path = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
问题是如何从客户端机器上检索。我考虑过从服务器检索路径并预先添加\\tsclient\
(并:
从C:
等中删除),但是如果My Documents
客户端上的目录与(V:
而不是D:
,例如)不同,那么Access Denied
当我尝试时我会得到一个写入该位置。
有没有办法让我可以指定一个类似于 CMD 的字符串,你可以在其中使用%USERPROFILE%/My Documents
,但使用tsclient
?
编辑:我发现我可以用来Environment.ExpandEnvironmentalVariables()
将 更改%USERPROFILE%\My Documents
为绝对路径。
string MyDocumentsLocation = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\My Documents");