当前位置:  开发笔记 > 编程语言 > 正文

Perl将文件复制到尚未创建的目录树中的最佳方法是什么?

如何解决《Perl将文件复制到尚未创建的目录树中的最佳方法是什么?》经验,为你挑选了3个好方法。

Perl将文件复制到尚未创建的目标目录树的最佳方法是什么?

就像是

copy("test.txt","tardir/dest1/dest2/text.txt");

由于目录tardir/dest1/dest2尚不存在,因此无法正常工作.在Perl中使用目录创建进行复制的最佳方法是什么?



1> Robert Gambl..:
use File::Path;
use File::Copy;

my $path = "tardir/dest1/dest2/";
my $file = "test.txt";

if (! -d $path)
{
  my $dirs = eval { mkpath($path) };
  die "Failed to create $path: $@\n" unless $dirs;
}

copy($file,$path) or die "Failed to copy $file: $!\n";



2> Leon Timmerm..:
use File::Basename qw/dirname/;
use File::Copy;

sub mkdir_recursive {
    my $path = shift;
    mkdir_recursive(dirname($path)) if not -d dirname($path);
    mkdir $path or die "Could not make dir $path: $!" if not -d $path;
    return;
}

sub mkdir_and_copy {
    my ($from, $to) = @_;
    mkdir_recursive(dirname($to));
    copy($from, $to) or die "Couldn't copy: $!";
    return;
}



3> runrig..:

File :: Copy :: Recursive :: fcopy()是非核心的,但将File :: Path :: mkpath()和File :: Copy :: copy()解决方案组合成更短的内容,并保留了与File不同的权限: :复制.它还包含其他漂亮的实用功能.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有