0

我已经编程了很长时间 - 但直到今天我才知道 - 文件夹不能粘贴到自己身上。

我以一种相当不愉快的方式发现了这一点——在我的应用程序中(我们正在开发一个文件浏览应用程序),当我将文件夹粘贴到自身中时——它导致了分段错误(无限递归)。

02-22 04:01:35.186: A/libc(786): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 786 (explorermanager)

我的问题是:还有其他我应该注意的粘贴限制并且也适用于大多数平台吗?

4

1 回答 1

0

在 Win32 上,您确实可以将目录复制到自身中。但是,如果它没有放在子目录中,它只会覆盖现有文件。

注意:对于大型目录,此解决方案将花费一些时间。

// Make sure to link default lib "Shell32.lib"

#include <Windows.h>
#include <Shellapi.h>

int main() {

    SHFILEOPSTRUCT hFileS = { 0 };

    hFileS.hwnd = NULL;
    hFileS.wFunc = FO_COPY;
    hFileS.fFlags = FOF_SILENT;

    hFileS.pTo = "C:\\DevkitPro\\TEST\0"; // Put into sub-dir TEST
    hFileS.pFrom = "C:\\DevkitPro\\*\0";

    SHFileOperation(&hFileS);

    return 0;

}

希望这会有所帮助(如果您使用的是 Windows)...

在 MSDN 上:

http://msdn2.microsoft.com/en-us/library/ms647743.aspx

于 2013-02-22T04:27:18.880 回答