c++跨平台读取根盘符文件路径到前台

1、后台代码
using namespace  std;
int MonitorServerApp::processManage()
{
Json::Value value_sub;
string ss;
std::vector<std::string> vec_sub;
Json::FastWriter jw;
#ifdef WIN32
DWORD dwLen = GetLogicalDriveStrings(0, NULL);  //获取系统字符串长度.  
char * pszDriver = new char[dwLen];             //构建一个相应长度的数组.  
GetLogicalDriveStrings(dwLen, pszDriver);       //获取盘符字符串.  
while (*pszDriver != '\0')
{
int a = strlen(pszDriver);
ss = *pszDriver;
cout << ss << endl;
pszDriver += strlen(pszDriver) + 1;         //定位到下一个字符串.加一是为了跳过'\0'字符串. 
vec_sub.push_back(ss+":\\");
}
for (int i = 0; i < vec_sub.size();i++)
{
value_sub[i] = vec_sub[i];
}
std::string &s = m_str_rep;
s = jw.write(value_sub);
#else
vec_sub.push_back("/");
for (int i = 0; i < vec_sub.size(); i++)
{
value_sub[i] = vec_sub[i];
}
std::string &s = m_str_rep;
s = jw.write(value_sub);
#endif
return 0;
}
void MonitorServerApp::selectDir(Json::Value ¶ms)
{
std::string diskname = params.asString();
namespace fs = boost::filesystem;
fs::directory_iterator end_iter1;
std::vector<std::string> vecDir;
std::vector < std::string> vecRec;
Json::Value v_sub;
for (fs::directory_iterator iter(diskname); iter != end_iter1; ++iter)//遍历一级文件夹.
{
if (fs::is_regular_file(iter->status()))
{ 
std::string fullPath = diskname + iter->path().filename().string();
vecDir.push_back(iter->path().filename().string());
}
else
{
std::string fullPath = util::path_append(diskname, iter->path().filename().string());
//recure_dir(fullPath);
/*vecRec = recure_dir(fullPath);*/
vecDir.push_back(fullPath);
}
}
for (int i = 0; i < vecDir.size(); i++)
{
v_sub[i] = vecDir[i];
}
Json::FastWriter jw;
std::string &s = m_str_rep;
s = jw.write(v_sub);
}
2、html代码
<!-- ProMan -->
<div class="modal-dialog-lg">
   <div class="modal-dialog">     <!--去掉之后显示全部横屏,不去只显示局部的内容-->
      <div class="modal-content">
         <div class="modal-header">
            <h4 class="modal-title">ProcessManage</h4>
         </div>
<div  class="modal-body" >
<button class="btn btn-primary btn-sm" ng-click="SelectClick()">select</button>
<table>
<tr ng-repeat="x in disk">
<td><button class="btn btn-primary btn-sm" ng-click="selectFloder(x)">{{x}}</button><br><td>
</tr>
</table>
<table>
<tr ng-repeat="x in dir">
<td><button class="btn btn-primary btn-sm" ng-click="selectFloder(x)">{{x}}</button><br><td>
</tr>
</table>
</div>
 <div class="modal-footer">
 <button type="button" class="btn btn-default" ng-click="ProManCloseClick()">Close</button>
 </div>
</div>
</div>
</div>
3、angular js代码
var app = angular.module("acsyzg0100");


app.controller("ProcessManageController",['$scope','$http',
function ($scope,$http){
var com_root = '/acsyprotocol';
$scope.SelectClick = function()
{
var a = { qry_type:"select_disk"};
$http.post( com_root,a ).success( function( data ){
$scope.dir = data;
}); 
};
$scope.selectFloder=function(x)
{
var a={qry_type:"select_dir",value:x};
$http.post( com_root,a ).success( function( data ){
$scope.dir = data;
});
};
}] );


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值