【发布时间】:2014-07-28 20:58:14
【问题描述】:
我正在尝试实现一个文件夹复制方法,该方法在循环中调用FindFirstFile 和FindNextFile,它可能会在任何子文件夹上递归调用自身。
为了防止明显的无限循环,我需要确保目标文件夹不是源文件夹的子文件夹。问题是如何做到这一点?我的想法是将 DOS 路径转换为特定于设备的路径(需要了解如何),但似乎还有更多。
所以我正在针对这种情况进行测试:
我将My Documents 文件夹设置为重定向到\\Server\Home\UserA\Documents 的网络共享,此外,该文件夹还映射到客户端计算机上的驱动器R:。这意味着以下所有文件夹:
"R:\Documents\Subfolder1"
"\\Server\Home\UserA\Documents\Subfolder1"
"C:\Users\UserA\Documents\Subfolder1"
技术上指向相同的物理位置,即My Documents 的子文件夹。
问题是如何可靠地知道这一点?
【问题讨论】:
-
如果您正在遍历文件夹层次结构,您希望如何遇到映射到同一个文件夹的多个文件夹?除非您使用符号链接或联结(在迭代过程中都可以检测到)。
-
哦,不用符号链接也可以轻松完成。假设我将
c:\Folder1指定为源文件夹,将c:\Folder1\Folder2指定为目标。
标签: c++ windows winapi filesystems