Julia 将文件夹复制到现有文件夹中

问题描述 投票:0回答:1

嗨,我想知道如何将文件夹复制到 julia 中的现有文件夹中。就我而言,我有一个名为 BigEarthNet-v1.0 的文件夹,其中包含许多子文件夹,其中每个子文件夹包含许多 tif 文件(即 BigEarthNet-V1.0 -> [folder1,folder2, ...],其中文件夹 1 -> [image1.tif,image2.tif, ...])。我想将 100 个子文件夹随机复制到名为 BigEarthNet-v1-concise 的现有文件夹中。从字面上看,制作一个简洁的数据集。

folders = readdir("BigEarthNet-v1.0")
random_paths = rand(folders, 100)
for folder in random_paths
    cp(joinpath("BigEarthNet-v1.0",folder), "BigEarthNet-v1.0-concise", force = true)
end

如果我不输入

force = true
我会收到错误。如果我执行代码,但实际上只有最后一个文件夹被复制,而且它也是文件夹内的文件而不是文件夹本身。据我了解,
force =true
删除现有文件夹
BigEarthNet-v1-concise
并再次重新创建该文件夹,这就是我出现此行为的原因。无论如何要实现我想要做的事情?

julia
1个回答
0
投票

您可能想要类似的东西:

from = "BigEarthNet-v1.0"
to = "BigEarthNet-v1.0-concise"
mkdir(to)
folders = readdir(from)
random_paths = rand(folders, 100)
for folder in random_paths
    cp(joinpath(from, folder), joinpath(to, folder))
end

POSIX

cp
命令 的行为有所不同,具体取决于目标是否是现有目录。这可以使命令变得不那么冗长。如果
dir
是现有目录:
cp "$path" dir
相当于
cp "$path" "dir/$(basename "$path")"

如果 target 存在并命名现有目录,则文件层次结构中每个文件的相应目标路径的名称应为 target、单个

<slash>
字符(如果 target 不以
<slash>
结尾)和文件相对于包含 source_file 的目录的路径名。

这使得 shell 中的常见用法不那么冗长,但不太明确,并且已决定不在 Julia 中复制此行为。参见例如这个问题.

© www.soinside.com 2019 - 2024. All rights reserved.