C# 实现在当前目录基础上找到上一层目录
其实很简单也很无脑,但却很实用,就是使用拆字符串的方法:
/// <summary> /// 获得项目的根路径 /// </summary> /// <returns></returns> public string GetProjectRootPath() { string rootPath = ""; string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; // F:\project\WPF\AstroATE-PDR\04. 程序\01. 源代码\AstroATE\AstroATE\bin\Debug // 向上回退三级,得到需要的目录 rootPath = BaseDirectoryPath.Substring(0, BaseDirectoryPath.LastIndexOf("\\")); // 第一个\是转义符,所以要写两个 rootPath = rootPath.Substring(0, rootPath.LastIndexOf(@"\")); // 或者写成这种格式 rootPath = rootPath.Substring(0, rootPath.LastIndexOf("\\")); // @"F:\project\WPF\AstroATE-PDR\04. 程序\01. 源代码\AstroATE\AstroATE return rootPath; }
调用该函数:
string str = GetProjectRootPath() + @"\data\帮助文档.pdf"; //找到需要找的文件
好了,这样就解决了。
补充:C# 如何获取可执行文件路径的上上级目录
第一种:
DirectoryInfo di = new DirectoryInfo(string.Format(@"{0}..\..\", Application.StartupPath)); di.FullName
..\有几个就是往回退几层
第二种:
DirectoryInfo info = new DirectoryInfo(Application.StartupPath); String path = info.Parent.Parent.FullName;
第三种:
string WantedPath = Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf(@"\"));
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
C# 表达式目录树的应用详解
使用表达式目录树实现两个不同类型的属性赋值: public class People { public int Age { get; set; } public string Name { get; set; } public int Id; } public class PeopleCopy { public int Age { get; set; } public string Name { get; set; } public int Id; } public class Class1 {
-
C#获得程序的根目录以及判断文件是否存在的实例讲解
一:获取根目录的方法 取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2.AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集 取得WinForm应用程序的根目录方法 1.Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径 2.Application.Startup
-
使用C#程序验证系统登录用户与目录权限
Windows用户类型:Administrator.Guest.自定义用户等:文件的权限不外乎:Read.Write.Modify.Remove等等,其中拥有所有权限的字符叫做FullControl. C#当前程序用户路径权限验证 /// <summary> /// 是否拥有程序数据路径权限 /// </summary> private static bool HasProgramDataRights=false; public static bool IsAdministrato
-
C#拷贝整个文件夹及子目录和其中文件的方法
下面一段代码给大家介绍C#拷贝整个文件夹以及子目录和其中文件,具体代码如下所示: private void CopyDirectory( string srcPath, string desPath) { string folderName = srcdir.Substring(srcdir.LastIndexOf( "\\" )+1); string desfolderdir = desPath + "\\" + folderName; if (desdir.La
-
C#获取根目录实现方法汇总
1.控制台应用程序 static void Main(string[] args) { //1.Environment.CurrentDirectory Console.WriteLine(Environment.CurrentDirectory); //2.AppDomain.CurrentDomain.BaseDirectory Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory); //3.项目的目录 Console.WriteL
-
C#表达式目录树示例详解
1.表达式目录树 表达式目录树,在C#中是Expression来定义的,它是一种语法树,或者说是一种数据结构.其主要用于存储需要计算.运算的一种结构,它只提供存储功能,不进行运算.通常Expression是配合Lambda一起使用,lambda可以是匿名方法.Expression可以动态创建. 声明一个lambda表达式,其中可以指明类型,也可以是匿名方法: //Func<int, int, int> func = new Func<int, int, int>((m, n) =&
-
C# 实现在当前目录基础上找到上一层目录
其实很简单也很无脑,但却很实用,就是使用拆字符串的方法: /// <summary> /// 获得项目的根路径 /// </summary> /// <returns></returns> public string GetProjectRootPath() { string rootPath = ""; string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; /
-
用vbs将本地文件替换为在文件服务器上找到的新版本
问: 您好,脚本专家!如何将本地文件的修改日期与文件服务器上的副本进行比较,并且,如果本地文件的版本更旧,将其替换为文件服务器上的版本? -- DC 答: 您好,DC.让我们想想,您是想将某些旧的东西替换为新的.不知道为什么,这让我们感到很不安. 嗯,并不是因为脚本专家正在变老,这得提醒您,我们没有.毕竟,膝盖和后背就应该是这么吱吱作响的:不然怎么知道它们在发挥作用呢?!? 注意:据说,当爱斯基摩人老得不中用的时候,他们会被抛弃在大块浮冰上任其自生自灭.幸好脚本专家都不是爱斯基摩人,而我们每天都
-
J2EE Servlet基础在浏览器上运行HelloServlet的方法
Servlet servlet本身不能独立运行,需要在一个web应用中运行的 而一个web应用是部署在tomcat中.开发一个servlet需要 创建web应用项目 编写servlet代码 部署到tomcat中 IDEA操作具体流程 1.创建名为j2ee的项目 2.导入servlet-api.jar包(Servlet需要用到包中的相关类) 附上下载链接 链接: https://pan.baidu.com/s/1cb5BqQ1TrKcPiaf6zuPLFQ 提取码: xtq6 导入: 右键项目
-
详解WPF如何在基础控件上显示Loading等待动画
WPF 如何在基础控件上显示 Loading 等待动画 框架使用.NET4 至 .NET6: Visual Studio 2022; 使用方式需引入命名空间后设置控件的附加属性 wd:Loading.IsShow="true",即可显示默认等待动画效果如下: 如需自定义 Loading 一定要 先设置 wd:Loading.Child 在设置 IsShow="true" . 显示不同 Loading 内容需 wd:Loading.Child ={x:Static w
-
Compact 显示和更改 NTFS 分区上的文件或目录压缩
Compact 显示和更改 NTFS 分区上的文件或目录压缩.如果在没有参数的情况下使用,则 compact 显示当前目录的压缩状态. 语法 compact [{/c|/u}] [/s[:dir]] [/a] [/i] [/f] [/q] [FileName[...]] 参数 /c 压缩指定的目录或文件. /u 解压缩指定的目录或文件. s:dir 指定将所请求的操作(压缩或解压缩)应用到指定目录的所有子目录,或者如果没有指定目录,则应用到当前目录的所有子目录. /a 显示隐藏或系统
-
Linux下scp无密码上传 下载 文件 目录的方法
在Linux下远程备份的时候,需要配置scp的 无密码复制文件.目录.就把这个设置整理如下: 本地服务器:A 远程服务器:B 1.在 A 上运行 ssh-keygen -t rsa 在/root/.ssh 下生成id_rsa 和 id_rsa.pub 两个文件 在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A 如图所示 2. 在 B 上也同样运行 ssh-keygen -t rsa 3. 在 B 的 /root/.ssh 下创建authorized_ke
-
python画图——实现在图上标注上具体数值的方法
比如当前的表格数据是 df['resultRate'].plot(style='-.bo') plt.grid(axis='y') #设置数字标签** for a,b in zip(df['num'],df['resultRate']): plt.text(a, b+0.001, '%.4f' % b, ha='center', va= 'bottom',fontsize=9) plt.show() 结果如图 以上这篇python画图--实现在图上标注上具体数值的方法就是小编分享给大家的全部内容
-
java开发MVC三层架构上再加一层Manager层原理详解
目录 MVC三层架构 MVC架构弊端 Manager层的特征 Manager层使用案例 MVC三层架构 我们在刚刚成为程序员的时候,就会被前辈们 "教育" 说系统的设计要遵循 MVC(Model-View-Controller)架构.它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是一种标准的软件分层架构. MVC分层架构是架构上最简单的一种分层
-
HTML基础详解(上)
目录 1.认识WEB 2.HTML初识 3.HTML常用标签 4.表格 总结 1.认识WEB 网页 主要是由文字.图像和超链接等元素构成,当然除了这些元素,网页中还可以包括音频.视频以及Flash等. 浏览器 是网页显示.运行的平台. 浏览器内核(排版引擎.解释引擎.渲染引擎) 负责读取网页内容,整理讯息,计算网页的显示方式并显示页面. 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.
-
MySQL分表实现上百万上千万记录分布存储的批量查询设计模式详解
我们知道可以将一个海量记录的 MySQL 大表根据主键.时间字段,条件字段等分成若干个表甚至保存在若干服务器中. 唯一的问题就是跨服务器批量查询麻烦,只能通过应用程序来解决.谈谈在Java中的解决思路.其他语言原理类似.这里说的分表不是 MySQL 5.1 的 partition,而是人为把一个表分开存在若干表或不同的服务器.1. 应用程序级别实现见示意图 electThreadManager 分表数据查询管理器它为分表的每个database or server 建立一个 thread pool
随机推荐
- 海量数据库的查询优化及分页算法方案 2 之 改良SQL语句
- ASP.NET实现用图片进度条显示投票结果
- laravel 5 实现模板主题功能(续)
- Python中函数eval和ast.literal_eval的区别详解
- python写的一个文本编辑器
- linux环境下python中MySQLdb模块的安装方法
- jsp文件操作之读取篇
- CentOS 7.0下使用yum安装mysql的方法详解
- PHP的AES加密算法完整实例
- JavaScript中匿名函数用法实例
- 为原生js Array增加each方法
- Mysql错误Cannot find or open table x/x from the internal问题解决方法
- Expandable "Detail" Table Rows
- 用javascript来实现select标签的美化的代码
- Java concurrency线程池之线程池原理(四)_动力节点Java学院整理
- spring-mybatis与原生mybatis使用对比分析
- Python中str.join()简单用法示例
- spring boot中使用RabbitMQ routing路由详解
- 垃圾回收器的相关知识点总结
- 2018年最值得一读的互联网书单