diff --git a/src/tbox/platform/windows/directory.c b/src/tbox/platform/windows/directory.c index 0490be247..bccb03f8b 100644 --- a/src/tbox/platform/windows/directory.c +++ b/src/tbox/platform/windows/directory.c @@ -83,7 +83,16 @@ static tb_long_t tb_directory_walk_copy(tb_char_t const* path, tb_file_info_t co if (!tb_file_copy(path, dpath, TB_FILE_COPY_NONE)) tuple[2].b = tb_false; break; case TB_FILE_TYPE_DIRECTORY: - if (!tb_directory_create(dpath)) tuple[2].b = tb_false; + { + // reserve symlink? + if ((flags & TB_FILE_COPY_LINK) && (info->flags & TB_FILE_FLAG_LINK)) + { + // just copy link and skip recursion + ok = tb_file_copy(path, dpath, TB_FILE_COPY_LINK); + skip_recursion = tb_true; + } + else ok = tb_directory_create(dpath); + } break; default: break;