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; }); }; }] );
相关文章推荐
- 山东省第六届蓝桥杯 ///标题:三羊献瑞//c/c++组
- 山东省第六届蓝桥杯 ///标题:星系炸弹//c/c++组
- VC++中字符串编码的转换
- C++条件状态 判别输入问题
- 第14周项目3 验证算法—二叉排序树相关算法
- C语言实现C到C++的注释转换
- 山东省第六届蓝桥杯 ///标题:奖券数目//c/c++组
- 探究C++中string类的实现原理以及扩展使用
- C++11的新特性 Lambda 函数
- C语言中的struct和typedef struct<转载>
- 【C++ STL应用与实现】0: 感恩STL——STL, ACM和年轻的我们
- 第14周项目2 算法验证—分块查找算法
- c++ 获取当前用户的根目录
- 第14周项目1 验证算法—折半查找算法
- 个人项目--C语言游戏
- 第13周项目3 算法验证—Floyd算法
- 第13周项目2 算法验证—Dijkstra算法
- 第13周项目1 算法验证—Prim算法+Kruskal算法
- C语言_螺旋输出
- PAT 2-08 用扑克牌计算24点(C语言实现)