winform使用相对路径读取文件的方法
获取exe文件的路径进行截取,分两次进行,然后拼接文件名,形成全路径
string haarXmlPath = @"haarcascade_frontalface_alt_tree.xml"; string fullName = Application.StartupPath.Substring(, Application.StartupPath.LastIndexOf("\\")); fullName = fullName.Substring(, fullName.LastIndexOf("\\")) + "\\" + haarXmlPath;
System.Diagnostics命名空间 :
string str1 =Process.GetCurrentProcess().MainModule.FileName; //可获得当前执行的exe的文件名。
System 命名空间:
string str2=Environment.CurrentDirectory; //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
System.IO命名空间:
string str3=Directory.GetCurrentDirectory(); //获取应用程序的当前工作目录。
string str4=AppDomain.CurrentDomain.BaseDirectory; //获取基目录,它由程序集冲突解决程序用来探测程序集。
string str5=Application.StartupPath; //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str6=Application.ExecutablePath; //获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase; //获取或设置包含该应用程序的目录的名称。
其他方法介绍:
1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。
2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3. System.IO.Directory.GetCurrentDirectory() 获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:"www里,这个函数有可能返回C:"Documents and Settings"ZYB",或者C:"Program Files"Adobe",有时不一定返回什么东东,我也搞不懂了。
4. System.AppDomain.CurrentDomain.BaseDirectory 获取程序的基目录。
5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase 获取和设置包括该应用程序的目录的名称。
6. System.Windows.Forms.Application.StartupPath 获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"""而已
7. System.Windows.Forms.Application.ExecutablePath 获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。
获取嵌入的资源文件的路径和方法
eg1.获取项目资源文件中的图片:
pictureBox1.BackgroundImage = global::工程名.Properties.Resources.图片名(没有后缀);
另附一种方法:
//获取项目中“资源文件”的数据 Assembly asm = Assembly.GetExecutingAssembly();
ResourceManager rm = new ResourceManager("TestCustomForm.Properties.Resources", asm);
String str = rm.GetString("ApplicationName");
//添加到资源文件的字符串
Image img = rm.GetObject("bamboo") as Image; //添加到资源文件的图片
eg2.获取项目添加项文件夹下的htm文件(注意:文件属性中生成操作得改为(嵌入的资源))不包括具体调用htm中具体字节方法:
private string getStringResource(String name)
{
//根据assembly名称加载程序集到当前的Appdomain
//System.Reflection.Assembly ass = System.Reflection.Assembly.Load("MyAssembly");
System.Reflection.Assembly asm = this.GetType().Assembly;
//在这个文件中列出的所有资源
System.Diagnostics.Debug.WriteLine("found resouces:");
foreach (String rs in asm.GetManifestResourceNames())
{
System.Diagnostics.Debug.WriteLine(rs);
name = this.GetType().Namespace + "." + name;
} System.IO.Stream strm = asm.GetManifestResourceStream(name);
//默认的系统编码转换为字符串
return new System.IO.StreamReader(strm, System.Text.Encoding.Default).ReadToEnd();
}
图片调用:Image.FromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream(@"TestCustomForm.Res.button.btndown.bmp"));
其中:TestCustomForm为项目名称,Res为项目下的文件夹,button为Res的子文件夹,btndown.bmp是文件名称。
winform使用相对路径读取文件的方法的更多相关文章
- C#中winform使用相对路径读取文件的方法
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6cd0d3027fa3cf1fd579080101 ...
- java 使用相对路径读取文件
java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构: DecisionTree |___src ...
- SQL Server 无法在服务器上访问指定的路径或文件解决方法
SQL Server 无法在服务器上访问指定的路径或文件解决方法 在SQL Server附加数据库或备份数据库时出现:无法在服务器上访问指定的路径或文件. 请确保您具有必需的安全权限且该路径或文件存在 ...
- 分享:Perl打开与读取文件的方法
在Perl中可以用open或者sysopen函数来打开文件进行操作,这两个函数都需要通过一个文件句柄(即文件指针)来对文件进行读写定位等操作. Perl打开与读取文件的方法,供大家学习参考.本文转自: ...
- php中禁止非法调用和硬路径引入文件的方法
php中禁止非法调用和硬路径引入文件的方法 在php中有一些公共的文件为了方便,我们会做一个公共文件,让不用的文件共同调用.为了禁止公共文件被非常单独调用,可以在文件上做一个常量,禁止非常调用:在公共 ...
- Java FileReader使用相对路径读取文件
Java FileReader使用相对路径读取文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 在进行编程时需要时常更换主机进行测试,如果使用绝对路径则需要经常更改,为此使用相对路径是一个 ...
- Python读取文件基本方法
在日常开发过程中,经常遇到需要读取配置文件,这边就涉及到一个文本读取的方法. 这篇文章主要以Python读取文本的基础方法为本,添加读取整篇文本返回字符串,读取键值对返回字典,以及读取各个项返回列表的 ...
- Java相对路径读取文件
不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的. 项目的文件夹结构: repathtest ├─sr ...
- C# Note5:使用相对路径读取文件
一.C#中使用相对路径读取配置文件 一般Solution的目录结构如下图所示: (如过看不到某些文件,可以点击 “显示所有文件” 图标) 方法一:由于生成的exe文件在bin\debug目录下,可以使 ...
随机推荐
- 《Python 机器学习》笔记(二)
机器学习分类算法 本章将介绍最早以算法方式描述的分类机器学习算法:感知器(perceptron)和自适应线性神经元. 人造神经元--早期机器学习概览 MP神经元 生物神经元和MP神经元模型的对应关系如 ...
- 20170411 F110初始界面-建议清单
功能块代码 F110 开发类 FIBP 事务说明 自动付款参数 程序 SAPF ...
- activiti 发布异常 org.activiti.engine.ActivitiException: Error parsing XML
三月 23, 2015 1:58:31 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...
- 【读书笔记】Java核心技术-基础知识-反射
在网页中运行Java程序称为applet. 反射 这项功能被大量地应用于JavaBeans中,它是Java组件的体系结构. 能够分析类能力的程序称为反射(reflective).反射机制的功能及其强大 ...
- 使用idea2016导出web项目war包
第一步配置Web Application:Exploded(已经配置的可以跳到第二步): 打开project structure(默认的快捷键是Ctrl+Alt+Shift+S),依次选择Artifa ...
- Django 进阶篇之 Form验证
Django Form验证 在实际的生产环境中比如登录和验证的时候,我们一般都使用Jquery+ajax来判断用户的输入是否为空,假如JS被禁用的话,咱们这个认证屏障是不是就消失了呢?(虽然一般不会禁 ...
- Using中return对象
class Program { static void Main(string[] args) { Test test = new Test(); var a = test.CreateA(); te ...
- Windows Server 2008 IIS的备份和还原
Windows Server 2008 IIS的备份和还原 当我们服务器系统有大量的站点和虚拟目录的时候,因为种种原因需要重做系统,那么重装系统后这些站点我们是否只能一个一个的添加,如果有成百上千个站 ...
- 一键安装 lnmp/lamp/lanmp
1.使用putty或类似的SSH工具登陆VPS或服务器 # screen -S lnmp 如果提示screen: command not found 命令不存在可以执行:yum install scr ...
- Optional int parameter 'time' is present but cannot be translated into a null value due to being decla
今天在操作redis的时候报了这个错:Optional int parameter 'time' is present but cannot be translated into a null val ...