作者aleelyle (lyle)
看板Perl
标题[问题] opendir 和 open
时间Wed Oct 22 20:34:52 2008
我遇到一个奇怪的问题
我想先用opendir把目录下的档名读出来之後开档
但是都会出现Permission denied的错误讯息
但是把开档那两行删掉就不会有问题,读的到档案名子
但是只要一open就有问题
我是用管理者帐号登入的 资料夹的权限也都开放给everyone
OS 是 XP Pro
我不想把档案名存起来,因为档案很多
能请各位帮我解决一下这个问题吗 谢谢
下面是我的程式
opendir DIR, ".";
while($infile = readdir(DIR)){
print "$infile\n";
# open(FHD, $infile) || die "$!\n";
# close(FHD);
}
closedir DIR;
Modified version:
opendir DIR, ".";
while($infile = readdir(DIR)){
print "$infile\n";
next if($infile='.'); #加上这行就好了
open(FHD,$infile) || die "$!\n";
close(FHD);
}
closedir DIR;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.191.115
※ 编辑: aleelyle 来自: 61.62.191.115 (10/22 20:36)
1F:→ giacch:我在 FreeBSD 上 run 没出现错误... XDDD 10/22 23:22
2F:→ giacch:猜测... 第一个 $infile 是 . 所以 open 目录 就 die 了~ 10/22 23:24
※ 编辑: aleelyle 来自: 61.62.191.115 (10/23 00:53)
3F:→ aleelyle:果然是这样!太感谢了 另附上修改过的版本 10/23 00:53
4F:→ Seshon:我猜你还会遇到 .. 两点的问题 10/23 22:56
5F:→ Seshon:可试一下glob这个function, 就可以避掉 10/23 22:57
6F:→ giacch:我发现一个问题耶... 後来修改的地方... 10/23 23:35
7F:→ giacch:$infile=',' 是 true 唷~ 会一直 nxet (爆 10/23 23:38
8F:→ giacch:$infile='.' (我按错key了... = = 10/23 23:39
9F:→ Seshon:想一下这段$infile='.'对, 还是这样对$infile = = '.' 10/24 21:07
10F:→ Seshon: 还是$infile eq '.' 对 10/24 21:08