zoukankan      html  css  js  c++  java
  • 16、C++获取磁盘空间的方法

    使用 C# 获取磁盘空间的方法:

     public async static Task<int> GetFreeSpace()
     {
         StorageFolder localFolder = ApplicationData.Current.LocalFolder;
         var properties = await localFolder.GetBasicPropertiesAsync();
         var filteredProperties = await properties.RetrievePropertiesAsync(new[] { "System.FreeSpace" });
         string freeSpace = filteredProperties["System.FreeSpace"].ToString();
         ulong size;
         int mb = 0;
         if (ulong.TryParse(freeSpace, out size))
             mb = (int)(size / (1024 * 1024));
    
         return mb;
     }

    不过使用 C++ 比较麻烦,在网页上没有搜到,在微软 Github-(https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples) 上的 demo(FileAccess)中,找到了使用方式,改造了一下:

    auto folder = Windows::Storage::ApplicationData::Current->LocalFolder;
    
    auto outputText = std::make_shared<String^>("Space: " + folder->Name);
    
    // Get basic properties
    create_task(folder->GetBasicPropertiesAsync()).then([this, outputText](task<BasicProperties^> task)
    {
        try
        {
            BasicProperties^ basicProperties = task.get();
            *outputText += "
    File size: " + basicProperties->Size.ToString() + " bytes";
        }
        catch (COMException^ ex)
        {
            //rootPage->HandleFileNotFoundException(ex);
        }
    }).then([this, folder]()
    {
        // Get extra properties
        auto propertiesName = ref new Vector<String^>();
        propertiesName->Append(L"System.FreeSpace");
        propertiesName->Append(L"System.Capacity");
    
        return folder->Properties->RetrievePropertiesAsync(propertiesName);
    }).then([this, outputText](IMap<String^, Object^>^ extraProperties)
    {
        auto propValue = extraProperties->Lookup(L"System.FreeSpace");
        if (propValue != nullptr)
        {
            *outputText += "
     FreeSpace: " + propValue;
        }
    
        auto propValue2 = extraProperties->Lookup(L"System.Capacity");
        if (propValue2 != nullptr)
        {
            *outputText += "
     Capacity: " + propValue2;
        }
    });
  • 相关阅读:
    数据结构:静态查找表
    数据结构:二叉查找树(C语言实现)
    自创open vp n windows步骤
    web application 访问控制
    postman trigger xdebug session in phpstorm
    sql查询学习和实践点滴积累
    如何写一个能在gulp build pipe中任意更改src内容的函数
    使用Virtual Audio Cable软件实现电脑混音支持电脑录音
    webpack学习笔记丁点积累
    centos 7.2 Apache+mysql+php step by step备忘
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/5893532.html
Copyright © 2011-2022 走看看