c语言中文件的只读属性,C/C++ 文件属性设置(隐藏、只读、加密等)(示例代码)

GetFileAttributes 获取文件属性函数的返回值

返回字段

返回值

属性类型

FILE_ATTRIBUTE_READONLY

1

只读

FILE_ATTRIBUTE_HIDDEN

2

隐藏

FILE_ATTRIBUTE_SYSTEM

4

系统

FILE_ATTRIBUTE_DIRECTORY

16

目录

FILE_ATTRIBUTE_ARCHIVE

32

存档

FILE_ATTRIBUTE_DEVICE

64

保留

FILE_ATTRIBUTE_NORMAL

128

正常

FILE_ATTRIBUTE_TEMPORARY

256

临时

FILE_ATTRIBUTE_SPARSE_FILE

512

稀疏文件

FILE_ATTRIBUTE_REPARSE_POINT

1024

超链接或快捷方式

FILE_ATTRIBUTE_COMPRESSED

2048

压缩

FILE_ATTRIBUTE_OFFLINE

4096

脱机

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED

8192

索引

FILE_ATTRIBUTE_ENCRYPTED

16384

加密

FILE_ATTRIBUTE_VIRTUAL

65536

虚拟

橙色标记的属性为Windows系统中文件的公有属性,其中“只读”、“隐藏”、“系统”、“存档”为文件的四种基本属性。compressed,content_indexed,encrypted只存在于NTFS分区中。

文件去掉全部属性后(四种基本属性),将自动标记为normal。同时具有system和hidden属性的文件会在系统中彻底隐形,这也是病毒常用的伎俩。

commpressed和encrypted不能共存。默认情况下文件都有content_indexed属性

2.SetFileAttributes 设置文件属性函数

设置文件属性: SetFileAttributes(文件名, 属性值)

SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY); // 设定为只读

SetFileAttributes(文件名, FILE_ATTRIBUTE_HIDDEN );       //设定为隐藏

SetFileAttributes(文件名, FILE_ATTRIBUTE_SYSTEM);      //设定为系统

SetFileAttributes(文件名, FILE_ATTRIBUTE_ARCHIVE);   //设定为保存

SetFileAttributes(文件名, FILE_ATTRIBUTE_NORMAL);     //设定为一般 (取消前四种属性)

设定二种以上的属性:

设定为只读 + 隐藏

SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN);

设定为只读 + 隐藏 + 系统 + 保存

SetFileAttributes(文件名, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN _

| FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE);

取消所有设定

SetFileAttributes(文件名, FILE_ATTRIBUTE_NORMAL);

-成功返回1-65536 ,错误返回0;

-#include 头文件;

VC

里移动和复制文件,删除文件的方法

文件属性设置的方法

CopyFile

MoveFile

SetFileAttributes

rename

BOOL CopyFile(

LPCTSTR

lpExistingFileName

,

// name of an existing file

LPCTSTR

lpNewFileName

,

// name of new file

BOOL

bFailIfExists

// operation if file exists

);

注意:

1

、文件的路径名中必须是为

\\

,而不是

\

\

是无效的,我已经试过了

2

bFailIfExists

的值为

TRUE

时,如果要复制的文件在目标文件夹下已经存

在,则复制失败。值为

FALSE,

则允许覆盖。

BOOL MoveFile(

LPCTSTR

lpExistingFileName

,

// file name

LPCTSTR

lpNewFileName

// new file name

);

注意:

其复制的文件名和

CopyFile

也是一样的。

DeleteFile

The

DeleteFile

function deletes an existing file.

BOOL DeleteFile(

LPCTSTR

lpFileName

// file name

);

BOOL SetFileAttributes(

LPCTSTR

lpFileName

,

// file name

DWORD

dwFileAttributes

// attributes

);

注意:

dwFileAttributes

为属性设置,有如下

int

rename(

const

char

*

oldname

,

const

char

*

newname

);

oldname

newname

也是一样是文件名(包含路径),

上面三个函数的返回值如果为

0

,则说明操作失败,为非零值说明操作成功。

以上两个函数包含在

windows.h

头文件中。

例子

#include 

#include 

using namespace std;

void main()

{

CopyFile(“D:\\DSC00008.JPG”,”E:\\mv\\1.jpg”,false);

MoveFile(“D:\\javahe

MySQL

实例

.doc”,”E:\\mv\\2.doc”);

SetFileAttributes(“E:\\mv\\2.doc”,FILE_ATTRIBUTE_HIDDEN);

rename(“E:\\mv\\2.doc”,”E:\\mv\\javahe

MySQL

实例

.doc”);

cout<

复制成功

“;

}

还有

CreateFile

,在

MSDN

里可以查到。要用到的时候再去查询吧

    原文作者:女王丁丁
    原文地址: https://blog.csdn.net/weixin_31903257/article/details/117189039
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞