使用目录内容建立菜单

遍历目录结构生成JSON 遍历目录生成JSON,带时间戳 package com.dreamvoc.resource; import org.codehaus.jackson.map.ObjectMapper; import java.io.File; import java.io.IOException; import java.util.HashMap; /** * Created by fangjian o 阅读详情
 

目的:根据目录内容,建立一个菜单。菜单项为目录中的文件和子目录(以弹出方式显示)。

解决方案:遍历子目录,建立一个文件路径数组。菜单项的ID是数组的索引。当用户单击某个菜单项时,从数组中读取文件路径并执行相应的操作。

细节:

首先,我们需要一个菜单。新建立的菜单将作为此菜单的子菜单。

CMenu*          pmenuFavorites=new CMenu;
pmenuFavorites->CreatePopupMenu();

然后读取目录,建立菜单

BuildFavoritesMenu(szPath, 0, pmenuFavorites);

最后,将菜单连接到已有菜单上面去

CMenu* pMenu=m_menuPopup.GetSubMenu(0);

pMenu->ModifyMenu(m_iMenuPosition,MF_BYPOSITION|MF_POPUP| MF_STRING,(UINT)(pmenuFavorites->GetSafeHmenu()),_T("动态菜单"));

pmenuFavorites->Detach();
delete pmenuFavorites;


其它的都很简单,但是建立这个菜单很麻烦

申明一个变量来存文件路径

CStringArray m_astrFavoriteURLs;

int CWorkBenchDlg::BuildMenu(LPCTSTR pszPath, int nStartPos, CMenu* pMenu)
{
    CString         strPath(pszPath);//path to start from
    CString         strPath2;//path to start from,with trailing backslash
    CString         str;//menu item text
    WIN32_FIND_DATA wfd;
    HANDLE          h;
    int             nPos;
    int             nEndPos;
    int             nNewEndPos;
    int             nLastDir;
    TCHAR           buf[INTERNET_MAX_PATH_LENGTH];
    CStringArray    astrFavorites;
    CStringArray    astrDirs;
    CMenu*          pSubMenu;

    // make sure there's a trailing backslash
    if(strPath[strPath.GetLength() - 1] != _T('//'))
        strPath += _T('//');
    strPath2 = strPath;
    strPath += _T("*.*");

    // now scan the directory, first for files and then for subdirectories
    //make a array of full pathnames.
    h = FindFirstFile(strPath, &wfd);
    if(h != INVALID_HANDLE_VALUE)
    {
        nEndPos = nStartPos;
        do
        {
            if((wfd.dwFileAttributes & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM))==0)
            {
                str = wfd.cFileName;//file name
                lstrcpy(buf,strPath2 + str);//file full pathname
                if(str.Right(4) .CompareNoCase(_T(".url"))==0)
                {
                    // an .URL file is formatted just like an .INI file, so we can
                    // use GetPrivateProfileString() to get the information we want

                    //fill the buf with URL
                    ::GetPrivateProfileString(_T("InternetShortcut"), _T("URL"),
                                              _T(""), buf, INTERNET_MAX_PATH_LENGTH,
                                              strPath2 + str);
                    str = str.Left(str.GetLength() - 4);//the name of URL

                }
                if(str.Right(4) .CompareNoCase( _T(".lnk"))==0)
                {
                    //fill the buf with link target
                    CGlobal::ResolveShortCut(NULL,strPath2 + str,buf);
                    str = str.Left(str.GetLength() - 4);
                }
                //TODO:add other format process here

                //这里对.url文件和.lnk文件做了处理,去掉了扩展名。lnk文件的处理参见http://support.microsoft.com/support/kb/articles/Q130/6/98.asp 。可以对其他格式的文件进行处理并更改菜单文字。

                // scan through the array and perform an insertion sort
                // to make sure the menu ends up in alphabetic order
                for(nPos = nStartPos ; nPos < nEndPos ; ++nPos)
                {
                    if(str.CompareNoCase(astrFavorites[nPos]) < 0)
                        break;
                }
                astrFavorites.InsertAt(nPos, str);
                m_astrFavoriteURLs.InsertAt(nPos, buf);
                ++nEndPos;
            }
        } while(FindNextFile(h, &wfd));
        FindClose(h);
        // Now add these items to the menu
        for(nPos = nStartPos ; nPos < nEndPos ; ++nPos)
        {
            pMenu->AppendMenu(MF_STRING | MF_ENABLED, 0xe00 + nPos, astrFavorites[nPos]);
        }


        // now that we've got all files, check the subdirectories for more
        nLastDir = 0;
        h = FindFirstFile(strPath, &wfd);
        ASSERT(h != INVALID_HANDLE_VALUE);
        do
        {
            if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                // ignore the current and parent directory entries
                if(lstrcmp(wfd.cFileName, _T(".")) == 0 || lstrcmp(wfd.cFileName, _T("..")) == 0)
                    continue;

                for(nPos = 0 ; nPos < nLastDir ; ++nPos)
                {
                    if(astrDirs[nPos].CompareNoCase(wfd.cFileName) > 0)
                        break;
                }
                pSubMenu = new CMenu;
                pSubMenu->CreatePopupMenu();

                // call this function recursively.
                nNewEndPos = BuildFavoritesMenu(strPath2 + wfd.cFileName, nEndPos, pSubMenu);
                if(nNewEndPos != nEndPos)
                {
                    // only intert a submenu if there are in fact files in the subdirectory
                    nEndPos = nNewEndPos;
                    pMenu->InsertMenu(nPos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT)pSubMenu->m_hMenu, wfd.cFileName);
                    pSubMenu->Detach();
                    astrDirs.InsertAt(nPos, wfd.cFileName);
                    ++nLastDir;
                }
                delete pSubMenu;
            }
        } while(FindNextFile(h, &wfd));
        FindClose(h);
    }
    return nEndPos;
}


好了,菜单建立完了。万事大吉?没有。还要写命令处理函数。

afx_msg void OnMenu(UINT nID)

{

        ShellExecute(NULL,NULL,m_astrFavoriteURLs[nID-0xe00],NULL,NULL,SW_SHOWDEFAULT);

}

和消息映射

……

 //}}AFX_MSG_MAP
 ON_COMMAND_RANGE(0xe00, 0xfff, OnMenu)
END_MESSAGE_MAP()

这里我使用了0xe00到0xfff作为命令ID的范围,所以最多有512个文件菜单项(够用吗?不够用自己写一个数好了)。因为通常命令的ID大于327xx,所以不会和其他菜单冲突(倒是可能会和按钮ID冲突,自己注意一下资源ID范围就OK啦)。

好了,编译,运行,通过!

唯一的遗憾是没有文件的图标。由于我对操作系统不是很熟悉,不知道怎么才能得到文件的图标并画到菜单上面去。欢迎各方高人指教!

在Windows ME和Visual C++6 SP5下测试通过。

RuoYi框架中添加多级目录菜单(至少二级目录) 一、参考来源:经过研究RuoYi框架发现,RuoYi框架有二级目录的模块只有系统管理下的日志管理模块(其下包括操作日志和登录日志两菜单),也就是说系统管理是顶级目录,日志管理是其下级目录,日志管理目录下又有两菜单,具体页面显示如下: 二、使用SQL语句添加含有二级目录的功能模块如下: 提示:如果在顶级目录下加下级目录的话,此下级目录插入的属性值 “path” 可以都设置为:system/log/index;此处直接用的日志管理模块的,如果还得加下下级目录的话,也是一样的写法的,亲试有效哟! -- 阅读详情

相关推荐

若依框架实现一级目录和左侧二级菜单的联动

最近使用若依框架开发项目,ruoyi的菜单管理根据权限分成了目录,菜单,按钮三种粒度,目录和菜单的区别是,目录自身没有路由,由子菜单进行路由。所以点击目录无法跳转页面,有这样一个需求,当点击一级目录的时候, 页面要发生跳转,并且在跳转的同时在左侧菜单栏中打开与之对应模块的二级菜单,实现目录与菜单的联动。2、写一个监听,监听目录的变化,打开目录相对应的菜单项,通过this.$router.push(),实现一级目录与二级菜单的联动。

石涵博—人生最大的挑战没过于战胜自己! 4896

遍历节点生成菜单(递归)

private void InitTree(TreeNodeCollection Nds,string parentId,ref DataSet ds)   {    DataView dv=new DataView();    TreeNode tmpNd;    string intId;    dv.Table=ds.Tables["Trees"];    dv.RowFilter="FID

Don't think about what u can do,but do what u wanna do 1148

AndroidStudio之option menu菜单的使用

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-A3z0I1D0-1712543285698)][外链图片转存中…(img-PTIcCeOU-1712543285698)][外链图片转存中…(img-F0as2Gm3-1712543285699)]

2401_84123294的博客 1120

用Visual C++打造IE浏览器(3)

二、实现收藏菜单   一般IE的用户都有个习惯,那就是将自己喜欢的网址保存起来,以方便今后快速的登陆,为了使我们的浏览器能够显示IE收藏过的网址,程序中设置了一个"Favorites"菜单,通过RegOpenKey()、RegQueryValueEx()等函数操作Windows的注册表中的HKEY_CURRENT_USER//Software//Microsoft//Windows//Curr

神经网络爱好者 1423

CloudCompare如何进行二次开发?

CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件实现二次开发。本文二次开发采用修改CloudCompare的源代码的方式,分别修改mainwindow.ui、mainwindow.h、mainwindow.cpp,实现扩展功能,克隆选中的点云。

【cacrle】的博客 5331

【CTFhub】——hate_php2021

【CTFhub】——hate_php2021

manerzi的博客 1605

若依vue-新建目录及菜单

前面我们把标题和logo换成了自己系统的标题和logo了接下来就是要建立自己需要的菜单和页面。

Anorry的博客 1万+

RocketMQ源码分析之消息轨迹

文章目录前言一、消息轨迹二、消息轨迹源码分析1、producer端2、consumer端三、消息轨迹中存储的信息1.TraceContext2.TraceBean3.TraceType四、总结 前言   本篇文章将会从以下方面介绍消息轨迹:什么是消息轨迹?如何启用消息轨迹?示例demo、消息轨迹的源码分析和消息轨迹中存储的信息。最后会用一张图来总结消息轨迹的工作原理。 一、消息轨迹 1.什么是消息轨迹? 消息轨迹是用来跟踪记录消息发送、消息消费的轨迹。 2.如何启用消息轨迹? broker端 需要在b

不爱学习的小妞博客 1075

微信小程序-新建目录 删除目录 菜单栏 子页面 建立框架

新建目录 删除目录 菜单栏 子页面 建立框架 一:新建目录 pages/index/右键创建目录,将会自动生成四个内容(js。json。wxml,wxss),并检查app.json有没有该目录地址,如创建pages/index/a,app.json中pages里显示有则表示成功 二: 删除目录 :需要在找到根目录并在其文件夹中删除 三:tabar----list-----tab— tabar为底...

qq_42453562的博客 802

ADB详细(从下载安装到灵活运用)

ADB(Android Debug Bridge)是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。可以在Android SDK/platform-tools中找到 adb 工具或下载ADB Kits。

LiuYong_01的博客 10万+

域格4G网优模块获取

1、获取当前小区信息 接口说明 该命令用于获取当前小区信息。 语法结构 命令类型 格式 返回结果 Execute AT+SCELLINFO +SCELLINFO: <cellMode>,<mcc>,<mnc>,<lac>,<cellId>,<afrcn>,<cpi>,<rxLevel>

自由的幻想 2463

menu菜单建立及使用

menu菜单建立及使用 首先在res目录下建立menu.directory,新建menu res.file,编辑代码如下 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item a

ericshen880412的博客 380

手眼标定搞定了,手眼矩阵不知道怎么用?快戳!!

手眼标定得到手眼矩阵到底该咋用? 大家好,我是小鱼。上几期给大家分享了关于手眼标定的方法,如果还有不清楚如何让进行手眼标定的同学可以参考下面的文章: 机器人手眼标定都能搞不定?快戳,最好用的手眼标定库!!! 很多同学做完了手眼标定之后得到了手眼矩阵,但是不知道怎么用于程序当中去,还有很多同学搞不清楚各个坐标系之间的关系,今天小智就给大家讲讲手眼矩阵的使用问题。 一、手眼矩阵为什么会长的不一样? 做完手眼标定,得到的手眼矩阵,有可能会长的不一样,这是因为旋转变换是有很多种表示方法的。 1.旋转的表

生活不止眼前的苟且 5342

WPF动态加载菜单目录

一般在项目中,为了方便项目后面的开发和管理,菜单都会选择从数据库动态加载。那么,动态加载菜单的原理是什么呢? 我们在数据库建立菜单表的时候,最起码需要有三个字段:菜单ID(ID)、菜单名称(Name)、上级菜单ID(SuperiorID)。 查询出所有的菜单数据,循环遍历出上级菜单ID为空的数据,作为一级菜单。 把每个一级菜单的菜单ID放到菜单数据里进行比较,得到菜单ID等于上级菜单ID的数...

qq_41968515的博客 2023

C++-ONNX:用onnxruntime部署自己的模型【Pytorch导出.onnx】【Tensorflow导出.onnx】【C++用onnxruntime框架部署并推理】

微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,旨在将所有模型格式统一为一致,更方便地实现模型部署。现在大多数的深度学习框架都支持ONNX模型转出并提供相应的导出接口。ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。

u013250861的博客 5766

UE实现贴地线(SurfaceLine)效果

UnrealEngine实现贴地线效果

专注GIS开发 4572

侧边目录菜单

开发中遇到生成文章标题目录菜单,并点击标题,文章跳转指定标题处 var objTree = { // boxMenu init(el, data) { //2.渲染到dom节点 this.elDom = document.getElementById(el); this.elDom.innerHTML = this.createTree(data, true); this.clickFun(); this.aclick();

qq_41247805的博客 675

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

openwrt--- 同一菜单下分页的建立和相关功能实现

1.打开路径/usr/share/luci/menu.d/,找到对应着一级菜单----服务下的RTU配置的文件------------luci-aap-ne-rtu.json,如下图所示。⑵文件权限配置:/usr/share/rpcd/acl.d/---------------------------功能权限配置。“type”:”view”----------------------作用的是二级菜单中的不同分页。其中”acl”:”luci-app-ne-rtu”是相关权限配置文件,直接引用即可。

zy_666_king的博客 1909

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

根目录和根菜单

根目录是文件系统中的​​最顶层目录​​,是所有文件和子目录的起点。它类似于“树状结构”的根节点,所有其他目录和文件均从这里分支延伸。​​操作系统差异​​:​​Windows​​:每个物理磁盘分区(如C盘、D盘)有独立的根目录,表示为X:\(X为盘符)。​​:整个系统仅有一个根目录,用表示,所有路径均从该目录开始。​​核心作用​​:​​组织文件结构​​:提供清晰的层级关系,便于管理海量文件。​​权限控制​​:根目录的访问权限直接影响系统安全性(如Linux的/root。

xuukai的博客 1741

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

目录菜单树的实现及查询

要求: 获取用户能操作的资源集合,这里主要考虑菜单树的获取 框架: springboot + hibernate 菜单树的逻辑是:子菜单存单,父菜单也得存在。 算法逻辑: 传入资源节点NodeList. 1。新建NodeList的ID集合A 和 父类资源节点列表ParenList 2。对资源节点NodeList进行遍历, 3. 对NodeLit遍历里面对节点进行判断

Jonah的博客 3815

Android多级目录、菜单

这次依旧是用kotlin编写多级目录(菜单),采用recycleview实现,对数据进行动态更新达到展开收起的目的。很好的利用的recycleview回收复用的优点

xinhengqq的博客 835

布局:左侧菜单栏+右侧内容

[size=small][color=blue](如有错敬请指点,以下是我工作中遇到并且解决的问题)下一篇文章改进了内容[/color][/size] [size=small]在网上搜这个内容时,大部分说 左侧a标签然后链接到右侧的iframe框架。有的 用frameset标签实现的,有的 左侧点击时,右侧使用innerHTML/innerText方法加入内容,有的 左侧点击时,右侧隐藏其他...

 我的博客 5640

C# winforms 使用菜单和右键菜单

C# winforms 使用菜单和右键菜单

编程之道在明明德在亲民在止于至善 2945
上一篇: 在应用程序中集成自动完成功能
下一篇: 快速调入TreeView控件以及ListView控件的子项内容
xmlscript
博客等级 码龄25年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值