您的位置:首页 > 编程语言 > C语言/C++

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

2015-12-17 15:04 495 查看
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;
});
};
}] );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: