美文网首页
目录相关

目录相关

作者: 7bfedbe4863a | 来源:发表于2018-04-20 16:38 被阅读0次

    创建新目录

    BOOL CreateDirectory(
      LPCTSTR lpPathName,    //将要创建的目录的路径
      LPSECURITY_ATTRIBUTES lpSecurityAttributes  //提供目录的安全描述符
    );
    
    • 头文件:#include <Windows.h>
      这个函数的参数比较少,使用方法也相应的比较简单,比如:
     BOOL bRet = CreateDirectory(L"D:\\test", NULL);
      //函数调用成功返回TRUE,失败返回FALSE
      if(!bRet)
        DWORD dwError = GetLastError();  //调用失败可以通过GetLastError查看失败原因
    

    下面是这个函数的一个Ex函数:

    BOOL CreateDirectoryEx(
      LPCTSTR lpTempDirectory,  //指定一个目录,其属性作为新建目录的属性模板
      LPCTSTR lpNewDirectory,  //新建的目录
      LPSECURITY_ATTRIBUTES lpSecurityAttributes  //安全属性
    );
    

    它的头文件和链接库文件和上面的一样,使用方法:

       BOOL bRet = CreateDirectoryEx(L"D:\\1", L"D:\\test", NULL);
      //目录1具有隐藏属性,则test目录也有隐藏属性
      //函数调用成功返回TRUE,失败返回FALSE
      if(!bRet)
        DWORD dwError = GetLastError();  //调用失败可以通过GetLastError查看失败原因
    

    删除目录

    BOOL RemoveDirectory(LPCTSTR lpPathName);
    

    这个函数的使用也是非常简单:

         BOOL bRet2 = RemoveDirectory(L"D:\\1");
        BOOL bRet3 = RemoveDirectory(L"D:\\test");
        //函数调用成功返回TRUE,失败返回FALSE
        if (!bRet2)
            DWORD dwError2 = GetLastError();  //调用失败可以通过GetLastError查看失败原因
    

    获取系统路径

    UINT GetSystemDirectory(
      LPTSTR lpBuffer,    //获取到的windows系统子目录的路径名
      UINT  uSize    //缓冲区的最大值(按Byte计)。这个值至少要被设置为MAX_PATH
    );
    
    • 返回值为复制到lpBuffer中的长度,不包括结束符。如果返回值大于uSize,那么返回值是存储路径名所需要的长度;如果返回值是0,那么说明函数调用有误,可以调用GetLastError查看出错原因。

    获取临时路径

    DWORD GetTempPath(
      DWORD nBufferLength,    //缓冲区大小(按Byte计)
      LPTSTR lpBuffer    //获取到的临时文件名
    );
    
    • 返回值为复制到lpBuffer中的长度,不包括结束符。如果返回值大于uSize,那么返回值是存储路径名所需要的长度;如果返回值是0,那么说明函数调用有误,可以调用GetLastError查看出错原因。

    获取Windows完整目录

    • Windows目录包括Windows应用程序、初始化文件和帮助文件等。
    UINT GetWindowsDirectory(
      LPTSTR lpBuffer,    //获取到的windows系统子目录的路径名
      UINT  uSize    //缓冲区的最大值(按Byte计)。这个值至少要被设置为MAX_PATH
    );
    
    • 返回值为复制到lpBuffer中的长度,不包括结束符。如果返回值大于uSize,那么返回值是存储路径名所需要的长度;如果返回值是0,那么说明函数调用有误,可以调用GetLastError查看出错原因。
    • 如果一个程序想要创建其私有的文件,则应该在HOMEPATH目录中创建。HOMEPATH目录对于每个用户来说有不同的值。

    获取和设置当前目录

    1. 设置当前目录
     BOOL SetCurrentDirectory(
      LPCTSTR lpPathName
     );
    
    • 这个函数常被用于为一个进程改变它的当前目录
    • 每个进程都有一个单独的当前目录,一个当前目录是由两部分组成的:
      1. 一个磁盘标识符(比如C:或者\Servername\sharename)
      2. 磁盘标识符上的一个目录
    • 对于管理文件操作的API来说,文件名可以是相对于当前目录的,也可以是一个完整的绝对路径。
    1. 获取当前目录
    DWORD GetCurrentDirectory(
      DWORD nBufferLength,
      LPTSTR lpBuffer
    );
    

    这一个的参数可以参照前面的几个函数

    相关文章

      网友评论

          本文标题:目录相关

          本文链接:https://www.haomeiwen.com/subject/wnkzkftx.html