none
发现一个问题,应该又是Bug。 RRS feed

  • 问题

  • 我已经把“我的文档”指向我自己习惯的位置,也使用了很旧了

    今天突然发现,我安装软件时,选择目标目录是“我的文档”,结果软件安装界面出来的实际地址确还是系统默认的我的文档地址!

    2010年9月7日 5:36

答案

  • 記起來了, 在用戶文件夾下是 "我的文檔", 因為我一般都是從開始菜單點進去的, 所以一下忽略了.

    另外不知你自己編寫的程序用到了哪些 API(是系統自帶的, 還是開發語言的相關庫), 還有 QQ 是指安裝軟件時, 設置聊天記錄保存路徑, 還是在使用過程中遇到的.

    最後我以為這個問題還是由於軟件編寫不完善造成, 即便是較新的程序也不能保證其方方面面都考慮的很完善.

    像 "我的文檔" 這類特殊文件夾路徑, 都保存在當前用戶的下面這個註冊表項, 只要通過相關 API 或方法就能輕鬆獲得.
    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders


    Folding@Home
    2010年9月9日 2:53
  • 這個問題還有一種可能是, 軟件優先加載自己當前目錄下的 DLL 文件, 而這些 DLL 文件發佈時間較早, 對獲取特殊文件夾路徑方面沒有考慮周全, 故造成了你遇到的這個問題.
    Folding@Home
    2010年9月9日 2:58

全部回复

  • 能大概說一下, 是如何修改的 "文檔" 路徑, 不知是否為通過 "文檔" 文件夾的屬性窗體進行的重定向?
    如果是按照上述方法修改, 而遇到了這個問題, 那麼不排除是因為那個軟件由於硬編碼的緣故, 造成其不能正確獲取當前用戶 "文檔" 文件夾的實際路徑.
    Folding@Home
    2010年9月7日 6:56
  • 我重指向我的文档的位置,用的就是常规的方法,即通过资源管理器-->当前用户-->我的文档-->右键·属性-->位置-->移动。来进行重指定。而且不是目前才指定,是之前系统安装时就指定了。

    安装Foxmail6.5正式版碰到。

    2010年9月7日 7:23
  • 刚刚自己用Delphi写了一个小程序试了一下,调用SelectDirectory函数(该函数是Delphi自带函数,但非API函数)后,选择打开窗口的“我的文档”,返回的还是默认值:C:\Users\????\Documents!

    2010年9月7日 7:29
  • 我重指向我的文档的位置,用的就是常规的方法,即通过资源管理器-->当前用户-->我的文档-->右键·属性-->位置-->移动。来进行重指定。而且不是目前才指定,是之前系统安装时就指定了。

    安装Foxmail6.5正式版碰到。


    安裝時指定, 那應該是通過應答文件. 是在系統安裝完成時指定的吧?
    Folding@Home
    2010年9月7日 7:40
  • 不是通过应答文件,是在安装过程中,选择目标目录。我在选择目标目录的时,选择窗口中的“我的文档”,但返回到软件安装界面是,实际路径是系统默认的我的文档的路径。
    2010年9月7日 7:42
  • 另外請在 PowerShell 下執行一下命令

    [System.Environment]::GetFolderPath('MyDocuments');

    執行完成後, 請把隱藏用戶名後的結果(如果存在的話)貼上來.


    Folding@Home
    2010年9月7日 7:46
  • 结果是对的:

    Windows PowerShell
    版权所有 (C) 2009 Microsoft Corporation。保留所有权利。

    PS C:\Users\????> [System.Environment]::GetFolderPath('MyDocuments')
    D:\MyDocs
    PS C:\Users\????>

    2010年9月7日 12:19
  • 從結果看, 系統是成功更改并存儲了修改後的當前用戶 "文檔" 文件夾的位置.

    目前看來應該依然是這些軟件未能有很好獲取像 "文檔" 這類特殊文件夾的位置造成的. 建議你多選擇幾個較新發布的軟件再進行測試.


    Folding@Home
    2010年9月7日 12:27
  • 另外請問一下, 因為 Windows Vista/7 中已經將 "我的文檔" 更名為 "文檔", 而你一直將其稱作為 "我的文檔". 關于這點, 不知是習慣使然, 還是系統確實是這樣顯示的.
    Folding@Home
    2010年9月7日 12:31
  • 另外還有一個可選方案, 你可以在原始的 "C:\Users\你的用戶名" 文件夾中, 通過以管理員身份運行命令提示符并執行命令

    mklink /j "%userprofile%\Documents" "D:\MyDocs"

    為實際的 "文檔" 文件夾建立一個交接點. 這樣就算有之前不能準確獲取 "文檔" 文件夾位置的程序, 現在也可以正常訪問該文件夾了. 當然依據不同程序內部邏輯的差異, 也不排除有程序仍然不能正獲得 "文檔" 文件夾的位置.


    Folding@Home
    2010年9月7日 12:37
  • 這裏再提供一個關于從 Windows Vista 開始經過重命名的特殊文件夾的 Microsoft 幫助和支持.

    易宝典:个人文件夹移动个位置更安全,重定向我的个人文件夹 (MVP 撰稿)
    http://support.microsoft.com/kb/976192/zh-cn


    Folding@Home
    2010年9月7日 12:47
  • Windows7下就是“我的文档”而非“文档”,我说的是用户目录下的,显示名称就是“我的文档”,而你说的“文档”,应该是指库下面的。

    用mklink命令来指定应该也可以,但系统不应该做的这样复杂,比较更多的人不懂得系统有mklink命令。

    应该是软件获取路径的问题,但同样的程序(我自己写的)和软件(QQ,比较有名气吧)在XP下无问题,在Win7下有这问题。

    2010年9月9日 1:55
  • 記起來了, 在用戶文件夾下是 "我的文檔", 因為我一般都是從開始菜單點進去的, 所以一下忽略了.

    另外不知你自己編寫的程序用到了哪些 API(是系統自帶的, 還是開發語言的相關庫), 還有 QQ 是指安裝軟件時, 設置聊天記錄保存路徑, 還是在使用過程中遇到的.

    最後我以為這個問題還是由於軟件編寫不完善造成, 即便是較新的程序也不能保證其方方面面都考慮的很完善.

    像 "我的文檔" 這類特殊文件夾路徑, 都保存在當前用戶的下面這個註冊表項, 只要通過相關 API 或方法就能輕鬆獲得.
    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders


    Folding@Home
    2010年9月9日 2:53
  • 這個問題還有一種可能是, 軟件優先加載自己當前目錄下的 DLL 文件, 而這些 DLL 文件發佈時間較早, 對獲取特殊文件夾路徑方面沒有考慮周全, 故造成了你遇到的這個問題.
    Folding@Home
    2010年9月9日 2:58