C++ Builder 参考手册 ➙ System::Sysutils ➙ FileSystemAttributes
获取文件系统属性
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
enum DECLSPEC_DENUM TFileSystemAttribute : unsigned char
{
fsCaseSensitive,
fsCasePreserving,
fsLocal,
fsNetwork,
fsRemovable,
fsSymLink
};
typedef System::Set<TFileSystemAttribute,
TFileSystemAttribute::fsCaseSensitive,
TFileSystemAttribute::fsSymLink>
TFileSystemAttributes;
TFileSystemAttributes __fastcall FileSystemAttributes(const System::UnicodeString Path);
参数:
- Path:路径,例如 "D:\"
返回值:
- 文件系统属性,集合类型,包含的内容包括:
• fsCaseSensitive: 支持大小写的文件名
• fsCasePreserving: 文件写入磁盘时,保留文件名的大小写
• fsLocal: 本地驱动器
• fsNetwork: 网络驱动器
• fsRemovable: 可移除 (U盘、光盘等)
• fsSymLink: 支持符号链接 (symbolic links) - 如果 Path 路径无效,抛出 EOSError 异常
- 这是磁盘的属性,不是操作系统的属性,如果含有 fsCaseSensitive 属性,说明保存在磁盘上的文件是有大小写的,但是不能说明操作系统是否区分大小写,即大小写是否认为是同一个文件,因为测试说明 Windows 的磁盘同时包含了 fsCaseSensitive 和 fsCasePreserving 属性,但是 Windows 访问文件时会认为大小写是同一个文件。
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
Memo1->Lines->Add(L"文件系统 " + Edit1->Text);
TFileSystemAttributes Attr = FileSystemAttributes(Edit1->Text);
if(Attr.Contains(fsCaseSensitive))
Memo1->Lines->Add(L"支持大小写的文件名");
if(Attr.Contains(fsCasePreserving))
Memo1->Lines->Add(L"文件写入磁盘时,保留文件名的大小写");
if(Attr.Contains(fsLocal))
Memo1->Lines->Add(L"本地驱动器");
if(Attr.Contains(fsNetwork))
Memo1->Lines->Add(L"网络驱动器");
if(Attr.Contains(fsRemovable))
Memo1->Lines->Add(L"可移除");
if(Attr.Contains(fsSymLink))
Memo1->Lines->Add(L"支持符号链接");
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
运行结果:
运行结果
相关:
- System::Sysutils::EOSError
- System::Sysutils::DiskFree
- System::Sysutils::DiskSize
- System::Sysutils::TFileSystemAttribute
- System::Sysutils::TFileSystemAttributes
- System::Sysutils::FileSystemAttributes
- System::Sysutils::CreateDir
- System::Sysutils::ForceDirectories
- System::Sysutils::RemoveDir
- System::Sysutils::GetCurrentDir
- System::Sysutils::SetCurrentDir
- System::Sysutils::FileExists
- System::Sysutils::DirectoryExists
- System::Sysutils::FileSearch
- System::Sysutils::FindFirst
- System::Sysutils::FindNext
- System::Sysutils::FindClose
- System::Sysutils::FileAge
- System::Sysutils::FileGetDate
- System::Sysutils::FileGetDateTimeInfo
- System::Sysutils::FileSetDate
- System::Sysutils::FileGetAttr
- System::Sysutils::FileSetAttr
- System::Sysutils::FileIsReadOnly
- System::Sysutils::FileSetReadOnly
- System::Sysutils::DeleteFile
- System::Sysutils::RenameFile
- System::Sysutils::IsAssembly
- System::Sysutils::FileDateToDateTime
- System::Sysutils::DateTimeToFileDate
- System::Sysutils
C++ Builder 参考手册 ➙ System::Sysutils ➙ FileSystemAttributes