如何取得系统中的桌面的路径

  我们在编写程序的时候,经常会需要得到系统中的一些特殊目录,例如:桌面、收藏夹、历史文件、字体等。在windows98、windows NT、windows 2000中他们的位置是不一样的,尤其在windows2000和wodows NT中,他们的位置随着登陆用户的不同而改变。那么我们要如何取得这些特殊目录的具体位置呢?

       当然是利用Api函数,现在我介绍两个Api函数,利用他们就可以轻松简单的获取这些特殊系统目录。

      Function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer;
 var ppidl: PItemIDList): HResult; stdcall;

      Function SHGetPathFromIDList(pidl: PItemIDList; pszPath: PChar):                BOOL;stdcall;

      其中由nFolder参数指定的就是各个特殊系统目录:

      CSIDL_DESKTOP:毫无疑问这就是桌面;

      CSIDL_DRIVERS:我的电脑;

      CSIDL_FAVORITES:收藏夹;

      CSIDL_STARTUP:开始菜单;

      CSIDL_NETWORK:网上邻居;

       还有很多,你可以查阅一下Delphi的Win32 Api函数的帮助文件,不过在帮助文件下的这些参数也不是很全,像收藏夹帮助文件里面就没有,你可以查阅一下它的头文件:shlobj.pas。

      下面我就利用这两个函数取得桌面的路径(在win98和win2000下都可以使用):

       uses shlobj;

                pitem:PITEMIDLIST;
         s:string;
       shGetSpecialFolderLocation(handle,CSIDL_DESKTOP,pitem);
         setlength(s,100);
          shGetPathFromIDList(pitem,pchar(s));
       end;
begin
         
var

        在字符串s中存储的就是桌面的路径值。简单吧!就是这么简单,但要是你不知道,你就得绕一个大圈子。

 使用API函数SHGetSpecialFolder。shlobj.h里有SHGetSpecialFolder的原型声明。这个函数可以帮我们找到windows的Desktop目录、启动目录、我的文档目录等。

       SHGetSpecialFolder需要三个参数。 第一个参数是HWND,它指定了"所有者窗口":在调用这个函数时可能出现的对话框或消息框。第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是:

  • CSIDL_BITBUCKET 回收站
  • CSIDL_CONTROLS 控制面板
  • CSIDL_DESKTOP Windows 桌面desktop
  • CSIDL_DESKTOPDIRECTORY desktop的目录
  • CSIDL_DRIVES 我的电脑
  • CSIDL_FONTS 字体目录
  • CSIDL_NETHOOD 网上邻居
  • CSIDL_NETWORK 网上邻居virtual folder
  • CSIDL_PERSONAL 我的文档
  • CSIDL_PRINTERS 打印机
  • CSIDL_PROGRAMS 程序组
  • CSIDL_RECENT 大多数最近打开的文档列一
  • CSIDL_SENDTO “发送到”菜单项
  • CSIDL_STARTMENU 任务条启动菜单项
  • CSIDL_STARTUP 启动目录
  • CSIDL_TEMPLATES 临时文档

     最后一个参数是pidl地址。SHGetSpecialFolderLocation把地址写到pidl。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python,可以使用os模块的getcwd()函数来获取当前工作目录的路径,也可以使用os.path模块的expanduser()函数来获取当前用户的主目录路径,然后再拼接上桌面路径。例如: import os desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") print(desktop_path) ### 回答2: 在Python,我们可以使用字符串来表示桌面路径桌面路径通常是操作系统特定的,因此需要在代码指定不同操作系统路径分隔符。 在Windows操作系统上,桌面路径通常是以"Desktop"结尾,我们可以使用以下代码获得桌面路径: ```python import os desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") ``` 这里,`os.path.expanduser("~")`使用`~`获取当前用户的主目录,然后使用`os.path.join()`函数将桌面文件夹名称"Desktop"与主目录连接起来。 在Mac操作系统上,桌面路径通常是以"Desktop"目录开头,我们可以使用以下代码获得桌面路径: ```python import os desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") ``` 与Windows相同,这里我们使用`os.path.expanduser("~")`获取当前用户的主目录,并使用`os.path.join()`函数连接主目录与桌面文件夹名称"Desktop"。 无论是Windows还是Mac操作系统,上述代码都将返回一个字符串表示的桌面路径。我们可以将路径用于文件操作、读取和写入等功能。 ### 回答3: 在Python程序,可以使用字符串来表示桌面路径。具体地说,可以使用绝对路径相对路径来表示桌面路径。 1. 绝对路径:绝对路径是指从文件系统根目录开始的路径。在Windows操作系统桌面的绝对路径通常是"C:\Users\用户名\Desktop",其"用户名"是当前登录用户的用户名。在Mac OS X和Linux操作系统桌面的绝对路径通常是"/Users/用户名/Desktop"。 下面是一个示例代码,演示如何以绝对路径的方式表示桌面路径: ```python desktop_path = "C:\\Users\\用户名\\Desktop" # 在Windows的绝对路径表示方式 # 或者 desktop_path = "/Users/用户名/Desktop" # 在Mac OS X和Linux的绝对路径表示方式 ``` 2. 相对路径相对路径是相对于当前工作目录的路径。要使用相对路径表示桌面路径,可以通过利用一些特殊的符号来表示相对位置。 下面是一个示例代码,演示如何以相对路径的方式表示桌面路径: ```python import os current_dir = os.getcwd() # 获取当前工作目录 desktop_path = os.path.join(current_dir, "Desktop") # 将桌面相对路径与当前工作目录合并成完整路径 ``` 需要注意的是,相对路径的表示方式可以根据具体的工作环境和文件结构进行调整和修改,灵活应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值