Jmouse.JFiles 代码(C#)

在Wincc8.0的Wincc 3D Control控件中使用3D模型 如果之前没有在Blender中自定义光照,EnableBackground属性选择“是”,Wincc 3D Control会按一个均匀的光照强度渲染。Wincc8.0更新后提供了一个Wincc 3D Control控件来显示3D图像,但是该控件实际体验下来现阶段还存在功能不足、运行不稳定的问题。再把导出的dae文件复制进Wincc项目的GraCS文件夹中,文件名称复制进控件的SceneFile属性里。选择编辑模式,全选模型,点击网格→分离→按材质,分离出不同的部件(不同的部件最好使用不同的材质)。 阅读详情
using System;
using
 System.IO;

namespace
 Jmouse
{
    
public class
 JFiles
    
{
        
public enum JSearchOptions { AllDirectories, OnlyTopDirectory }
;
        
public enum JPatternOptions { OnlyFiles, OnlyDirectories, Both }
;

        
protected virtual void SetDirMethod(string
[] path)
        
{ }


        
protected virtual void SetFileMethod(string[] path)
        
{ }


        
protected virtual void SetErrorMethod(string path, Exception e)
        
{ }


        
protected virtual void SetErrorMethod(string path, 
            
string
 searchPattern, Exception e)
        
{ }


        
public int Search(string path)
        
{
            
int SearchFailed = -1
;
            
try

            
{
                
string[] dirs =
 Directory.GetDirectories(path);
                SetDirMethod(dirs);
                
if (dirs.Length > 0
)
                
{
                    
for (int i = 0; i < dirs.Length; i++
)
                    
{
                        
try

                        
{
                            SearchFailed 
+=
 Search(dirs[i]);
                        }

                        
catch (Exception e)
                        
{
                            SearchFailed
++
;
                            SetErrorMethod(path, e);
                            
continue
;
                        }

                    }

                }

                
string[] files = Directory.GetFiles(path);
                SetFileMethod(files);
                
return (SearchFailed + 1
);
            }

            
catch (Exception e)
            
{
                SetErrorMethod(path, e);
            }

            
return SearchFailed;
        }


        
public int Search(string path, JSearchOptions searchOptions)
        
{
            
int SearchFailed = -1
;
            
try

            
{
                
string[] dirs =
 Directory.GetDirectories(path);
                SetDirMethod(dirs);
                
if (searchOptions ==
 JSearchOptions.AllDirectories)
                
{
                    
if (dirs.Length > 0
)
                    
{
                        
for (int i = 0; i < dirs.Length; i++
)
                        
{
                            
try

                            
{
                                SearchFailed 
+=
 Search(dirs[i], 
                                    searchOptions);
                            }

                            
catch (Exception e)
                            
{
                                SearchFailed
++
;
                                SetErrorMethod(path, e);
                                
continue
;
                            }

                        }

                    }

                }

                
string[] files = Directory.GetFiles(path);
                SetFileMethod(files);
                
return (SearchFailed + 1
);
            }

            
catch (Exception e)
            
{
                SetErrorMethod(path, e);
            }

            
return SearchFailed;
        }


        
public int Search(string path, string searchPattern, 
            JPatternOptions patternOptions)
        
{
            
int SearchFailed = -1
;
            
try

            
{
                
string[] dirs = new string[0
];
                
string[] files = new string[0
];
                
if ((patternOptions == JPatternOptions.Both) ||
 
                    (patternOptions 
==
 JPatternOptions.OnlyDirectories))
                
{
                    dirs 
=
 Directory.GetDirectories(path, searchPattern);
                }

                
else
                
{
                    dirs 
=
 Directory.GetDirectories(path);
                }

                SetDirMethod(dirs);
                
if (dirs.Length > 0)
                
{
                    
for (int i = 0; i < dirs.Length; i++
)
                    
{
                        
try

                        
{
                            SearchFailed 
+=
 Search(dirs[i], 
                                searchPattern, 
                                patternOptions);
                        }

                        
catch (Exception e)
                        
{
                            SetErrorMethod(path, searchPattern, e);
                            SearchFailed
++
;
                            
continue
;
                        }

                    }

                }

                
if ((patternOptions == JPatternOptions.Both) || 
                    (patternOptions 
==
 JPatternOptions.OnlyFiles))
                
{
                    files 
=
 Directory.GetFiles(path, searchPattern);
                }

                
else
                
{
                    files 
=
 Directory.GetFiles(path);
                }

                SetFileMethod(files);
                
return (SearchFailed + 1);
            }

            
catch (Exception e)
            
{
                SetErrorMethod(path, searchPattern, e);
            }

            
return SearchFailed;
        }


        
public int Search(string path, string searchPattern, 
            JPatternOptions patternOptions, JSearchOptions searchOptions)
        
{
            
int SearchFailed = -1
;
            
try

            
{
                
string[] dirs = new string[0
];
                
string[] files = new string[0
];
                
if ((patternOptions == JPatternOptions.Both) ||
 
                    (patternOptions 
==
 JPatternOptions.OnlyDirectories))
                
{
                    dirs 
=
 Directory.GetDirectories(path, searchPattern);
                }

                
else
                
{
                    dirs 
=
 Directory.GetDirectories(path);
                }

                SetDirMethod(dirs);
                
if (searchOptions == JSearchOptions.AllDirectories)
                
{
                    
if (dirs.Length > 0
)
                    
{
                        
for (int i = 0; i < dirs.Length; i++
)
                        
{
                            
try

                            
{
                                SearchFailed 
+=
 Search(dirs[i], 
                                    searchPattern, 
                                    patternOptions, 
                                    searchOptions);
                            }

                            
catch (Exception e)
                            
{
                                SetErrorMethod(path, 
                                    searchPattern, 
                                    e);
                                SearchFailed
++
;
                                
continue
;
                            }

                        }

                    }

                }

                
if ((patternOptions == JPatternOptions.Both) || 
                    (patternOptions 
==
 JPatternOptions.OnlyFiles))
                
{
                    files 
=
 Directory.GetFiles(path, searchPattern);
                }

                
else
                
{
                    files 
=
 Directory.GetFiles(path);
                }

                SetFileMethod(files);
                
return (SearchFailed + 1);
            }

            
catch (Exception e)
            
{
                SetErrorMethod(path, searchPattern, e);
            }

            
return SearchFailed;
        }

    }

}
Unity之Hololens2开发MRTK Profile详解 配置 MRTK 的主要方式之一是使用基础包中的配置文件。场景中的主要对象具有活动配置文件 - 一个 ScriptableObject。顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。此外,这些子配置文件也是 ScriptableObjects,因此可以包含对低它们一级的其他配置文件对象的引用。实质上,有一个包含已连接配置文件的完整树,这些配置文件构成了如何初始化 MRTK 子系统和功能的配置信息。 阅读详情

相关推荐

从零构建生产级K8s-v1.35.0集群:基于Containerd与Cilium的kubeadm实战指南

本文详细介绍了从零构建生产级K8s-v1.35.0集群的全过程,涵盖环境准备、Containerd配置、Kubernetes组件安装、集群初始化及Cilium网络部署等关键步骤。通过实战经验分享系统调优技巧和常见问题解决方案,帮助读者快速搭建稳定高效的Kubernetes集群。

weixin_28725553的博客 219

Jmouse.JFiles 类

Jmouse.JFiles空间名称:Jmouse类:JFiles成员:JSearchOptions, JPatternOptions方法:SetDirMethod, SetFileMethod, SetErrorMethod (+2 次重载), Search (+4 次重载)此类是针对于 Directory 类的 GetFiles 和 GetDirectories 方法的一种完善。当我们在使用 D

FrontGoggle 984

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

枚举所有未被使用的 SharedDlls

首先,查找这些文件是否可用的原理在于注册表。注册表中的 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/SharedDlls 键是用来储存系统中所有 SharedDlls 的使用情况的,其中每一项的值代表着这个 SharedDll 被多少个应用程序所引用,如果某项的值为0,那么就说明这个 SharedDll 已经变成无用的了

FrontGoggle 2568

手把手教你用CODESYS将旧笔记本改造成软PLC(含证书配置避坑指南)

本文提供了一份详尽的指南,教你如何利用CODESYS平台将闲置旧笔记本改造为一台功能完整的软PLC。内容涵盖从硬件评估、系统实时性优化、软件安装与驱动配置,到关键的证书授权管理避坑指南,旨在帮助自动化工程师和爱好者低成本搭建稳定可靠的学习与开发平台。

weixin_29190573的博客 279

移花接木,玩转CANoe的几种扩展接口应用(五)——串口设备

近期看到粉丝朋友在CANoe自动化测试方面的关注度很大,今天就围绕这个做一个专题,总结一下以往项目上用过的几种CANoe扩展接口,分享出来希望对相关领域的网友有所帮助。本文是该专题的第五篇文章,主要讲解了串口设备的功能配置、连接方法、配置方法、调用方法,最后分析了这种扩展借口应用的特点和适用场景。

Mr.Cssust的博客 2369

如何通过编程得到所有窗体的标题及类名称

如果我们想通过编程来检测某个窗口是否存在,我们通常会使用 Windows API 函数中的 FindWindow(),而且,通常我们又不知道要获得窗口的类名称,所以我们经常性的忽略第一个参数,而是只使用窗口标题来检测窗口,这里就出现了一个问题:若该窗口没有标题或有变化标题(如IE)则我们就需要使用类名称进行查询了。当然,我们可以通过 VS 中提供的 spy++ 这样的工具来获得桌面窗口的类名称,但

FrontGoggle 2382

CryoEM - 冷冻电镜 基于深度学习的 从头重构(Ab-initio Reconstruction) 开源项目 教程

冷冻电镜(CryoEM) 是一种成像方式,为蛋白质和其他生命基本组成部分的动态,提供独特的观察方式。从数百万噪声和随机取向的二维投影中,以计算效率高的方式,联合估计生物大分子的姿态、三维结构和构象异质性。

AGI 1556

在独立环境下做C语言和汇编语言的试验的一些感想

最近一直在为参加 SUN 公司的编程大赛做准备,自己又在准备软件设计师认证,真是忙得一塌糊涂。关于比赛,我主要去负责软件内核的设计,而我本人也想把软件的内核放到单纯的独立环境(所谓独立环境就是指没有任何操作系统环境,就是BIOS经过 POST(Power On Self Test) 之后直接引导进我的环境,类似操作系统kernel)中去,但是,问题出现了,学计算机的人也许都知道,汇编语言是没有可移

FrontGoggle 2295

【VibeCoding系列】小白入门指南:模型选择、编辑器选择、项目预定全分析

开箱即用:下载安装就能用,不用配 API Key(也可以自己配)Cmd+K 快速修改:选中代码,按 Cmd+K,直接让 AI 修改Cmd+L 对话:侧边栏聊天,支持引用文件和代码@文件引用:输入 @ 就能引用项目中的文件,AI 自动读取上下文Agent 模式:告诉 AI 一个需求,它自动跨文件修改下载地址cursor.com(免费版有额度限制,足够入门)✅下载 Cursorcursor.com),安装打开✅选一个小项目(个人名片页 or Todo List)✅按照七步工作流开干。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 210

精度与速度双突破:YOLOv8-Pose 在 RK3588 上实现高性能人体姿态分析部署

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

know_F0727的博客 434

0-200之间有多少1

 今天看到一个电视互动节目问:0-200之间有多少个数字1?你知道答案么?想象一下,1、10、11、12....191都有1啊,到底是多少呢?马上写一个程序: (C#)int count = 0;for (int j = 0; j  200; j++)...{    foreach (char c in j.ToString().ToCharArray())    ...{        

FrontGoggle 1216

《【一看就会】Autoware.universe的“规划”部分源码梳理》系列文章目录(持续更新中)

第零章:Planning综述 第一章:【一】全局路径生成模块——mission_planner 第二章:【二】路径行为规划模块——behavior_path_planner第一部分——behavior_path_planner模块 第三章:【二】路径行为规划模块——behavior_path_planner第二部分——behavior_path_planner_common模块(1) 第四章:【二】路径行为规划模块——behavior_path_planner第三部分——behavior_path_plan

weixin_48386130的博客 2339

HOWTO:向 TreeView 控件中添加 XML 节点

在 VS2005 中提供了很好的对 XML 的操作支持,下文将介绍如何使用 System.Xml 空间将数据绑定到 TreeView 控件。本文适用于以具有 Visual Basic/C#/C++ 开发经验且了解 XML 的人士。在向 TreeView 控件追加节点的时候可以使用 TreeNode 类,因为它直接表示一个节点,再添加时只需要将其与XML 文件的 XmlNode 类建立联系即可。本例

FrontGoggle 1045

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

约瑟夫环的算法

数据结构的里约瑟夫环的一种简单有效的算法:#include "stdio.h"#include "stdlib.h"struct circle...{    int ID;    struct circle* next;};int main(int argc, char* argv[])...{    int n,m,i;    scanf("%d %d", &n, &m);    str

FrontGoggle 1035

NTscan扫描工具

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

关于测试

实现 malloc() 和 free() 之后我进行了几个测试看它们是不是生效,但是总有些问题,我使用如下代码进行测试(putch2() 和 getch2() 是我之前实现的向屏幕输出字符的函数,经测试无误,malloc2() 是我的 malloc() 函数):void t_main(){    char* q/*=(char*)malloc2(1000)*/;    //Here I t

FrontGoggle 870

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VS2005 注意事项(2)

在 .Net Framework 2.0 中如果跨线程调用控件会出现错误( InvalidOperationException 从不是创建控件 control name 的线程访问它。)如 test() 函数可能是跨线程的向 Form1 的 listBox1 中加入项:......//假设 test() 运行于一不安全线程下void test(){    ......    Form1 f

FrontGoggle 841

使用lxml操作 Word 的 OpenXML 底层

本文综合介绍了使用lxml操作Word底层OpenXML文档的基础知识,并给出了一个效率远超VBA的提取Word文档中的表格的HTML表结构的实例,演示了用lxml获取及修改部分Word文档组成部件的文本、属性的方法。

yivifu的专栏 407

C#使用opencv和Yolo模型识别车牌号

本文基于OpenCVSharp与OnnxRuntime,结合YoloV8n-pose_plate模型(检测车牌位置)和OCR模型(识别车牌文字),实现高效车牌识别。通过预处理、目标检测、NMS筛选及文字识别流程,最终输出车牌框位置与识别文本。代码封装良好,支持自定义路径与置信度阈值,具备实际应用价值。

lweiyue的专栏 171

C# NAFNet 图片去模糊

基于NAFNet与ONNX Runtime的C# WinForms图片去模糊工具,支持DirectML GPU加速与CPU回退,实现一键去模糊、大图分块处理、并排对比及拖拽打开。具备高DPI适配、自绘圆角界面、命令行批量处理等功能,适用于Windows 10/11系统,可灵活配置模型路径与分块大小,解决显存不足与边缘接缝问题。

hixiong123的博客 259

使用C#代码提取、修改或删除 Excel 中的超链接

通过 C# 和 VB.NET,可以方便地管理 Excel 文件中的超链接,包括提取、修改和删除等操作。提取超链接: 获取工作表中的超链接集合,读取每个超链接的地址和类型,并将相关信息保存到文本文件中。修改超链接: 更新超链接的显示文本和目标地址,确保链接信息准确。删除超链接: 移除指定的超链接,同时可以选择保留单元格中的原有显示文本,或清除单元格的全部内容。这些操作可以帮助开发人员更高效地管理 Excel 文档中的链接信息,减少重复的手动操作,也便于在数据迁移、文档维护和自动化报表处理等场景中使用。

2501_93070778的博客 231

C#: 控件不支持透明的背景色

把透明度固定为255。

海天鹰 41

week11-词云图

核心逻辑:词频越高,文字字号越大;适合快速看文本高频关键词(影评、评论、摘要文本非常适配 CommentInfo.csv)

m0_66244637的博客 138

基于 OPC UA 的半导体工厂化学气体传输 SCADA 监控系统:架构设计与 C# MVVM 实现

本文提出一套面向半导体化学气体传输的可演进SCADA系统,基于OPCUA统一信息模型与C#+WPF+MVVM技术栈,实现从气源到机台的全链路实时监控、安全联锁与追溯。通过资产树建模、分层解耦架构与标准对齐(SEMI E30/E95/S2),确保系统可扩展、可维护、可审计,满足高安全、高可靠要求,支持快速落地与持续演进。

ponygame的博客 334

C# 基于OpenCv的视觉工作流-章115-单节点条件

本章介绍C#基于OpenCv的视觉工作流中单节点条件的设置,涵盖列表值范围判断(支持“与”“或”逻辑)、模块结果参数匹配判定,以及结果显示图像与字体配置。通过灵活设定条件,实现检测结果的OK/NG自动判定,提升视觉系统智能化水平。配套工具“VisionTool 探迹”已更新,新增海康相机、PC相机采集及多类通讯优化功能,助力工业视觉应用。

sali-tec的博客 246

把本地 docx 半自动发到 优快云 创作页(python实现)

本文介绍一套基于Python的自动化工具链,实现将本地Word文档(.docx)半自动发布至优快云创作页。通过docx2md.py将文档转为Markdown并导出图片,再用auto_upload.py自动粘贴文本与图片至网页编辑器,全程仅需双击脚本和点击输入框,支持40张图片按序粘贴,显著提升内容发布效率。

weixin_45615730的博客 196
上一篇: Google's tools
下一篇: Jmouse.JFiles 类
frontgoggle
博客等级 码龄21年 7粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值