文件属性的问题?

如何知道文件是隐藏的受保护的系统文件?
谢谢!
...全文
53 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
ding
  • 打赏
  • 举报
回复
再顶
受保护??
如:boot.ini,System Volume Information(文件夹)等
从属性那里可以体现啊,实在不懂
在文件夹选项里面有这样的选项,大家看一下
zzhong2 2004-04-01
  • 打赏
  • 举报
回复
可上msdn.microsoft.com上查详细帮助和列子
1.GetFileAttributes:
DWORD GetFileAttributes(LPCTSTR lpFileName)

FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_COMPRESSED
FILE_ATTRIBUTE_DEVICE
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_ENCRYPTED
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
FILE_ATTRIBUTE_OFFLINE
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_REPARSE_POINT
FILE_ATTRIBUTE_SPARSE_FILE
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY
example:
#include <windows.h>
#include <stdio.h>

WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

BOOL fFinished = FALSE;

// Create a new directory.

if (!CreateDirectory(szDirPath, NULL))
{
printf("Couldn't create new directory.");
return;
}

// Start searching for .TXT files in the current directory.

hSearch = FindFirstFile("*.txt", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
printf("No .TXT files found.");
return;
}

// Copy each .TXT file to the new directory
// and change it to read only, if not already.

while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
printf("Couldn't copy file.");
return;
}

if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files.",
"Search completed.", MB_OK);
fFinished = TRUE;
}
else
{
printf("Couldn't find next file.");
return;
}
}
}

// Close the search handle.

FindClose(hSearch);



2.SHGetFileInfo
WINSHELLAPI DWORD WINAPI SHGetFileInfo(

LPCTSTR pszPath,
DWORD dwFileAttributes,
SHFILEINFO FAR *psfi,
UINT cbFileInfo,
UINT uFlags
);


  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
受保护文件,如:boot.ini,System Volume Information(文件夹)等
如果从属性看好象是不能确定的
faSysFile+(faHidden+faReadOnly)??无法确定
zzhong2 2004-03-31
  • 打赏
  • 举报
回复
主  题: 文件属性的问题。
作  者: whutxuan (gtk)
等  级:
信 誉 值: 100
所属论坛: C++ Builder 基础类
问题点数: 20
回复次数: 1
发表时间: 2004-02-01 13:04:28



用ListView控件来保存文件属性。
代码如下。

TListItem * pItem;
TListColumn *pColumn;
char Dir[MAX_SIZE];
TSearchRec sr;
int iAttributes = 0;


iAttributes |= faAnyFile;

memset(Dir,0,MAX_SIZE);

strcpy(Dir,drivers);
strcat(Dir,":");
strcat(Dir,"\\");
strcat(Dir,"*.*");

Form1->ListView2->Clear();
if ( FindFirst( Dir, iAttributes, sr) == 0 )
{
try
{
do
{
if ( sr.Name == "." || sr.Name == ".." )
{
pItem = Form1->ListView2->Items->Add();
pItem->Caption = sr.Name;
pItem->SubItems->Add(FileDateToDateTime(sr.Time));
pItem->SubItems->Append("<Dir>");
continue;
}
if ( sr.Attr == faDirectory )
{
pItem = Form1->ListView2->Items->Add();
pItem->Caption = sr.Name;
pItem->SubItems->Add(FileDateToDateTime(sr.Time));
pItem->SubItems->Append("<Dir>");

}
else
{
pItem = Form1->ListView2->Items->Add();
pItem->Caption = sr.Name;
pItem->SubItems->Add(FileDateToDateTime(sr.Time));
pItem->SubItems->Append(sr.Size);
}
sr.Attr = 0x00;

}while ( FindNext ( sr ) == 0 );
FindClose(sr);
return true;
}
catch(Exception &e)
{
FindClose(sr);
return true;
}
}
return true;
}
明明是目录但是
sr.Attr的属性有的是0x36,0x27,0x30
但是sr的Attr没有这些数值:

Constant Value Description

faReadOnly 0x01 Read-only files
faHidden 0x02 Hidden files
faSysFile 0x04 System files
faVolumeID 0x08 Volume ID files
faDirectory 0x010 Directory files
faArchive 0x020 Archive files
faAnyFile 0x03F Any file

请问应该怎么处理?




回复人: ccrun(老妖)(www.ccrun.com) ( ) 信誉:107 2004-02-01 14:58:00 得分:0


0x36 = 0x010 + 0x020 + 0x02 + 0x04
也就是说,该文件的属性是
faDirectory + faArchive + faHidden + faSysFile


Top







管理 | 关闭窗口


1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧