Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2073722
  • 博文数量: 354
  • 博客积分: 4955
  • 博客等级: 上校
  • 技术积分: 4579
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-21 11:46
文章分类

全部博文(354)

文章存档

2015年(1)

2013年(4)

2012年(86)

2011年(115)

2010年(67)

2009年(81)

我的朋友

分类:

2011-02-22 15:07:00

有的时候我们会需要处理到文件的一些属性,比如说只读、隐藏之类的,

我这里大概说下在WIN32下如何取得和修改文件的属性。

     需要: use Win32::File;

   然后使用如下方法:

   my $set;

#取得文件的属性
   Win32::File::GetAttributes($name, $set);

#设置文件的属性
   Win32::File::SetAttributes($name, ARCHIVE);

在perldoc里,可供设置的属性如下:

 存档文件 32       
 压缩文件 2048
 目录文件 16
  隐藏文件 2
 正常文件 128
 脱机文件 4096
 只读文件 1
 系统文件 4
 临时文件 256
 
为了方面理解,我在程序里把每个选项对应的数值都打印出来附在后面了,

每个选项都是只占一位的,因此我们可以用或|来同时应用多个属性,如下:
 
Win32::File::SetAttributes($name, |);

这样你就发现你的文件同时是隐藏和存档文件了.^_^

use Win32::File;

Win32::File::SetAttributes($name, $attr);

#!/usr/bin/perl -w

use Win32::File;

$name  = "yourFile.txt";
$attr  = 0;

Win32::File::GetAttributes($name, $attr) or die "Can't get attributes for $name.";

print "File attributes: $attr\n";

if ($attr & READONLY) {
    print "$name is read only.\n";
}

if ($attr & ARCHIVE) {
    print "$name has ARCHIVE set.\n";
}

if ($attr & HIDDEN) {
    print "$name is hidden.\n";
}

if ($attr & SYSTEM) {
    print "$name has SYSTEM set.\n";
}

if ($attr & COMPRESSED) {
    print "$name has COMPRESSED set.\n";
}

if ($attr & DIRECTORY) {
    print "$name has DIRECTORY set.\n";
}

if ($attr & NORMAL) {
    print "$name has NORMAL set.\n";
}

if ($attr & OFFLINE) {
    print "$name has OFFLINE set.\n";
}

if ($attr & TEMPORARY) {
    print "$name has TEMPORARY set.\n";
}
阅读(1976) | 评论(0) | 转发(0) |
0

上一篇:7-ZIP 命令行

下一篇:SoX的用法_例子

给主人留下些什么吧!~~