FileSystemAttributes - C++ Builder

C++ Builder 参考手册System::SysutilsFileSystemAttributes


获取文件系统属性

头文件:#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::SysutilsFileSystemAttributes

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容