如何利用SHGetDesktopFolder的这套函数遍历到“..”和"."这些文件夹

解决方案 »

  1.   

    那为何我用findfirstfile \ findnextfile这些api函数就可以得到..这些文件夹呢~!
      

  2.   

    1楼说的不错。这两个节点存在的目的我不清楚,也许是为了实现某些特殊的功能或效果。但是对于我们遍历文件系统来说,应该把他们过滤掉。比如使用findfirstfile \ findnextfile时,经常是先把得到的节点名称与“.”、“..”比较,如果是二者之一,则跳过,继续循环。
      

  3.   

    ".."与"."这两个应该忽略掉
    如果你略懂DOS命令,在CMD下用DOS的cd命令就能知道..与.的作用了
    比如当前路径 C:\TEST\ABC\
    如果在DOS下你要返回上一级,就用cd ..就能返回到C:\TEST\所以你遍历文件夹时应该忽略掉".."与"."
      

  4.   

    我的目的就是为了返回上级目录。我想实现类似rar那样的界面。我想在一个循环中列出所有目录,不想再单独去生成..这样的目录
      

  5.   

    do
    {
    if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
    if ((stricmp(FindFileData.cFileName, ".") == 0) || 
    (stricmp(FindFileData.cFileName, "..") == 0))
    continue;
    if ((stricmp(szCurrentDirName, FindFileData.cFileName) == 0) || 
    (stricmp(szCurrentDirName, FindFileData.cAlternateFileName) == 0))
    {
    bFound = TRUE;
    strcat(lpszLongPathName, FindFileData.cFileName);
    strcat(lpszLongPathName, "\\");
    break;
    }
    }
    }while(FindNextFile(hFile, &FindFileData));
      

  6.   

    . 與 .. 可以自己寫在TreeView裡面
    當user 敲擊
    便即時運算上層路徑,也就是去掉一個 '\\'
    再 loop 取得所有資料夾與檔案這應該是你要的結果吧?