FileSystemAttributes - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ FileSystemAttributes


获取文件系统属性

头文件:#include
命名空间:System::Sysutils
函数原型:

enum DECLSPEC_DENUM TFileSystemAttribute : unsigned char
{
    fsCaseSensitive,
    fsCasePreserving,
    fsLocal,
    fsNetwork,
    fsRemovable,
    fsSymLink
};
typedef System::Set
    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

你可能感兴趣的:(FileSystemAttributes - C++ Builder)