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;
        }
    });
  • 相关阅读:
    数据库设计时间修饰词
    Tomcat手动指定jdk路径
    linux删除乱码文件[转载]
    elasticsearch简单查询
    elasticsearch批量删除(查询删除)
    elasticsearch使用Analyze API
    elasticsearch批量索引数据示例
    Elasticsearch创建索引和映射结构详解
    mysql设置服务器编码
    HBase单机模式安装
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/5893532.html
Copyright © 2011-2022 走看看