【发布时间】:2011-08-23 00:27:00
【问题描述】:
我想使用 perl 创建文件夹,在同一个文件夹中,存在一个 perl 脚本。我创建了FolderCreator.pl,它需要folder name 的输入参数。
unless(chdir($ARGV[0]){ # If the dir available change current , unless
mkdir($ARGV[0], 0700); # Create a directory
chdir($ARGV[0]) or die "can't chdir $ARGV[0]\n"; # Then change or stop
}
这只有在我们调用 scipt 时才能正常工作,在它所在的同一文件夹中。如果在另一个文件夹中调用,如果不起作用。
例如。
.../Scripts/ScriptContainFolder> perl FolderCreator.pl New
.../Scripts> perl ./ScriptContainFolder/FolderCreator.pl New
第一个工作正常,但第二个没有。有没有办法创建这些文件夹?
【问题讨论】:
-
顺便说一句,我试过 $path = substr(abs_path($0), 0, index(abs_path($0),'FolderCreator.pl') ); $pwd =
pwd;印章($pwd); $path = substr($path, length($pwd));获取相对路径并尝试 mkpath($path.$ARGV[0]) 但它给出错误“mkdir /Darshana: Permission denied at ./Darshana/scripts/FolderCreator.pl line 25” -
我的脚本正在生成一些文本文件。所以我想将它们组织到文件夹中。当我想创建这些文本文件时,我创建文件夹然后将文件夹更改为它并创建文本文件。所以 FolderCreator.pl MyDir 将创建 MyDir 文件夹并在其中创建那些文本文件。