我有一条相对的道路
$base_path = "input/myMock.TGZ";
Run Code Online (Sandbox Code Playgroud)
myMock.TGZ是位于输入文件夹中的文件名.文件名可以更改.但路径始终存储在$base_path.
我需要检查文件是否存在$base_path.
我需要一些关于Perl中数组的帮助
这是我的构造函数.
BuildPacket.pm
sub new {
my $class = shift;
my $Packet = {
_PacketName => shift,
_Platform => shift,
_Version => shift,
_IncludePath => [@_],
};
bless $Packet, $class;
return $Packet;
}
sub SetPacketName {
my ( $Packet, $PacketName ) = @_;
$Packet->{_PacketName} = $PacketName if defined($PacketName);
return $Packet->{_PacketName};
}
sub SetIncludePath {
my ( $Packet, @IncludePath ) = @_;
$Packet->{_IncludePath} = \@IncludePath;
}
sub GetPacketName {
my( $Packet ) = @_;
return $Packet->{_PacketName};
}
sub GetIncludePath {
my( …Run Code Online (Sandbox Code Playgroud) 我使用以下查询
var queryList1Only = (from file in list1
select file).Except(list2, myFileCompare);
Run Code Online (Sandbox Code Playgroud)
同时myFileCompare根据名称和长度比较2个文件.
如果list1和list2很小(在我测试时说100个文件),查询返回结果,然后我将list1增加到30,000个文件,list2增加到20,000个文件,查询现在说"Function Evaluation Timed Out".
我在网上搜索,发现调试可能会导致它,所以我删除了所有断点并运行代码,现在程序只是冻结,没有任何输出,queryList1Only我试图打印出来检查它.
编辑:这是myFileCompare的代码
class FileCompare : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo>
{
public FileCompare() { }
public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2)
{
return (f1.Name == f2.Name && f1.Directory.Name == f2.Directory.Name &&
f1.Length == f2.Length);
}
// Return a hash that reflects the comparison criteria. According to the
// rules for IEqualityComparer<T>, if Equals is true, then the hash codes must
// also …Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序,在代码隐藏页面中,我有一个按钮单击事件.
protected void btnUpload_Click(object sender, EventArgs e)
{
TimerEvent TE = new TimerEvent();
TE.TimerEvents();
Server.Transfer("~/Jobs.aspx");
}
Run Code Online (Sandbox Code Playgroud)
我有一个方法调用TimerEvents(),它可能需要10-15秒才能将控制权恢复到服务器传输.所以我希望服务器传输线在方法调用的同时执行.
我在这里试过线程:
TimerEvent TE = new TimerEvent();
Thread t = new Thread(TE.TimerEvents);
t.IsBackground = true;
t.Start();
Server.Transfer("~/Jobs.aspx");
Run Code Online (Sandbox Code Playgroud)
但是在方法完成之前不进行转移.我怎样才能做到这一点?
我如何tar多个目录,并附加一些模式,如'.txt',并排除一些目录,并将一些模式,如'.exe'全部排除在一个tar文件中.主要的一点是目录的数量是未知的(动态的),所以我需要循环通过我猜?
我正在从perl为ContentCheck.pl进行系统调用,并使用目录(包含空格)传递参数.所以我用引号传递它们,但它们没有在ContentCheck.pl文件中被选中
Random.pm 1)
my $call = "$perlExe $contentcheck -t $target_path -b $base_path -o $output_path -s $size_threshold";
print "\ncall: ".$call."\n";
system($call);
Run Code Online (Sandbox Code Playgroud)
Contentcheck.pl
use vars qw($opt_t $opt_b $opt_o $opt_n $opt_s $opt_h); # initialize
getopts('t:b:o:n:s:h') or do{
print "*** Error: Invalid command line option. Use option -h for help.\a\n";
exit 1};
if ($opt_h) {print $UsagePage; exit; }
my $tar;
if ($opt_t) {$tar=$opt_t; print "\ntarget ".$tar."\n";} else {
print " in target";
print
"*** Error: Invalid command line option. Use option -h for help.\a\n"; …Run Code Online (Sandbox Code Playgroud)