Julia实现随机子文件夹复制到已有文件夹的问题求助
解决Julia中文件夹批量复制的问题
你的问题出在cp函数的目标路径设置上:你直接把目标指定为BigEarthNet-v1.0-concise文件夹,这会导致每次执行cp时,都是将源文件夹的内容覆盖到目标根目录,而不是把源文件夹作为子目录复制进去,最后只剩最后一次复制的内容就是这个原因。
正确的做法是,把目标路径设置为BigEarthNet-v1.0-concise下与源文件夹同名的子路径,这样每个选中的文件夹都会被完整复制到目标目录下。修改后的代码如下:
# 获取源目录下的所有子文件夹 folders = readdir("BigEarthNet-v1.0"; join=false) # 过滤掉非文件夹的条目(避免误处理文件) filter!(isdir ∘ joinpath("BigEarthNet-v1.0"), folders) # 随机挑选100个文件夹 random_folders = rand(folders, 100) # 批量复制 target_root = "BigEarthNet-v1.0-concise" for folder in random_folders src_path = joinpath("BigEarthNet-v1.0", folder) dest_path = joinpath(target_root, folder) cp(src_path, dest_path; force=true) end
关键修改说明:
- 新增
filter!步骤:确保只处理文件夹,避免readdir可能返回的文件条目(如果源目录下有文件的话)。 - 目标路径改为
joinpath(target_root, folder):明确指定每个源文件夹要复制到目标目录下的同名子文件夹中,而非覆盖目标根目录。 - 使用
force=true:如果目标子文件夹已经存在,会强制覆盖(若不想覆盖,可去掉该参数,或提前判断并跳过已存在的文件夹)。
内容的提问来源于stack exchange,提问作者imantha
相关产品推荐
相关产品推荐

