2008-11-13 31 views
4

我們的Windows Forms應用程序默認將數據文件保存在用戶的'我的文檔'文件夾(XP)或'文檔'文件夾(Vista)上。我們通過以下方式查找此位置:當文件夾重定向處於活動狀態時解決'Environment.SpecialFolder.Personal'

Environment.GetFolderPath(Environment.SpecialFolder.Personal) 

我們知道這對於個人文件夾位於本地磁盤上的用戶非常有用。我們不確定的是哪些域用戶的文件夾重定向適用於他們的個人資料/個人數據文件夾。

我的問題是:無論文件夾重定向是否處於活動狀態,上述調用是否正確解決?

我沒有環境來測試這個,我一直無法找到任何確定的方式或其他方式。

回答

1

是的。您可以通過更新文件夾的相應註冊表項來自己測試。看看下......

HKEY_CURRENT_USER \軟件\微軟\的Windows \ CurrentVersion \ Explorer中\ Shell文件夾

+0

我知道,更改「我的文檔」文件夾的目標將更新此註冊表項(因此Environment.SpecialFolder調用將正常工作)。 但文件夾重定向的工作方式相同嗎? – CBono 2008-11-13 03:19:07

1

我會期待它。 Environment.GetFolderPath和底層SHGetSpecialFolderPath文檔沒有給出任何跡象表明它不能正確解析,也不能找到任何你會使用它的地方。

1

我知道它已經有一段時間,但我想在這裏報告,我已經有用戶報告在XP的機器,其My Documents文件重定向到網絡上的Environment.GetFolderPath(Environment.SpecialFolder.Personal)調用下面的錯誤(它去推動O):

System.ArgumentException: Absolute path information is required. 
    at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) 
    at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) 
    at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) 
    at System.Environment.GetFolderPath(SpecialFolder folder, SpecialFolderOption option) 
    at System.Environment.GetFolderPath(SpecialFolder folder) 

我沒有直接訪問到這臺機器配置,但從谷歌搜索和用戶的幫助,我相信重定向是缺乏尾隨\(例如。O:而不是f O:\)。

所以我相信答案將是不,它不會正確解決每次

相關問題