2017-05-10 1 views
0

저는 programm에서 작업 중이며, std :: vector의 선택된 디렉토리에서 모든 파일의 속성을 검색해야합니다.모든 파일에 FILE_ATTRIBUTE_ARCHIVE 속성이 있습니다.

그 코드는 파일 속성을 가져 오는 방법을 보여줍니다.

DWORD attr_flags = GetFileAttributes(file_path); 

if (attr_flags == INVALID_FILE_ATTRIBUTES) { 
    std::cout << "Invalid file attributes." << std::endl; 
    return; 
} 

이와 같이 은퇴 플래그를 구문 분석하십시오.

if (attr_flags & FILE_ATTRIBUTE_ARCHIVE) { 
    attrs.push_back(defines::Attributes::kArchive); 
    attr_flags &= ~FILE_ATTRIBUTE_ARCHIVE; 
} 

if (attr_flags & FILE_ATTRIBUTE_COMPRESSED) { 
    attrs.push_back(defines::Attributes::kCompressed); 
    attr_flags &= ~FILE_ATTRIBUTE_COMPRESSED; 
} 

/* etc... */ 

그래서, 난 콘솔이 얻을 결과를 인쇄하고있어 결국 모든 파일을 (심지어 보관하지 않음) 아카이브 속성을 가지고 왜

All files has archive attribute

사람이, 말해 주시겠습니까 ?

P.S : MSDN TELL의

FILE_ATTRIBUTE_ARCHIVE 32 (0x20) 

아카이브 파일이나 디렉토리의 파일이나 디렉토리. 응용 프로그램은 일반적으로이 특성을 사용하여 파일을 백업 또는 제거 대상으로 표시합니다.

답변

6

"archive"속성은 "이 파일이 압축 파일"(ZIP 또는 7Z 파일과 같은)을 의미하지 않습니다. 오히려, 그것은 typically means "이 파일을 백업해야"

파일이 생성되거나, 아카이브 비트가 설정 수정 Windows 및 OS/2에

, 파일이 백업 된 경우, 아카이브 비트가 지워집니다. 따라서 아카이브 비트의 의미는 다음과 같습니다. 이 파일은 또는 에 보관됩니다.이 파일은 보관 처리되지 않았습니다..

증분 백업 작업은 이미 백업 된 파일을 구별하기 위해 아카이브 비트를 사용하고 백업용으로 새 파일이나 수정 된 파일 만 선택할 수 있습니다.

실제로 더 이상 실제로 사용되지는 않았다고 생각합니다.

관련 문제