WinForm相对路径的陷阱

本文所述为使用WinForm相对路径时需要注意的陷阱。这类错误经常会遇到!现分析如下供大家参考。

在Window系统上利用相对路径进行操作时,有一个“当前目录”的概念,如果程序中是利用相对路径进行操作,系统会认为是在当前目录下进行操作,即 相对路径 等于 当前目录 + 相对路径 所组成的绝对路径。

应用程序默认的当前目录为:程序入口所在路径。

并且在WinForm中,OpenFileDialog.RestoreDirectory 或 SaveFileDialog.SaveFileDialog 的设置都可以影响到当前目录,可以造成当前目录的改变。

当前目录一旦改变,就会影响到相对路径,进而造成文件系统的寻址不正确

所以在实际的编程中、请谨慎使用相对路径!如果因为相对路径出现bug,会让你感到欲哭无泪!

希望本文所述对大家C#程序设计有所帮助。

(0)

相关推荐

  • C#实现获取程序路径方法小结

    本文实例讲述了C#实现获取程序路径方法.分享给大家供大家参考.具体如下: 获取DLL的目录: Assembly myAssembly = Assembly.GetEntryAssembly(); string path = myAssembly.Location; DirectoryInfo dr = new DirectoryInfo(path); path=dr.Parent; //当前目录的上一级目录 C#获取程序当前路径的方法: System.Environment.CurrentDir

  • C#中winform使用相对路径读取文件的方法

    本文实例讲述了C#中winform使用相对路径读取文件的方法.分享给大家供大家参考.具体分析如下: 目录结构如下图所示:   方法一:由于生成的exe文件在bin\debug目录下,可以使用向上查找目录的方式获取要读取的xml文件 复制代码 代码如下: string haarXmlPath = @"../../haarcascade_frontalface_alt_tree.xml"; FileInfo file = new FileInfo(fileName); string  fu

  • C#中Winform获取文件路径的方法实例小结

    本文实例讲述了C#中Winform获取文件路径的方法.分享给大家供大家参考.具体如下: 获取文件名方法: 用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法 获取文件路径方法: //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe //(.exe

  • 使用C#获取系统特殊文件夹路径的解决方法

    win7下无法向c盘写入文件,当前用户只能向自己的用户文件夹写入文件,比如MyDocuments,文件夹,用c#得到这些文件夹的目录方法是: 复制代码 代码如下: string path=System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);  Environment.SpecialFolder 枚举说明: CommonApplicationData 目录,它用作所有用户使用的应用程序特定数据的公共储存库.

  • C#路径,文件,目录及IO常见操作汇总

    本文实例汇总了C#路径,文件,目录及IO常见操作.分享给大家供大家参考.具体如下: 问题1:如何判定一个给定的路径是否有效/合法: 通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以 根据它来判断路径中是否包含非法字符: 问题2:如何确定一个路径字符串是表示目录还是文件: 1.使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录:如果后者为真,则路径表示文件:

  • c#文件名/路径处理方法示例

    复制代码 代码如下: string filePath = @"E:\Randy0528\中文目录\JustTest.rar"; Response.Write("文件路径:"+filePath); Response.Write("<br/>更改路径字符串的扩展名.<br/>"); Response.Write(System.IO.Path.ChangeExtension(filePath, "txt"))

  • C#文件路径操作详细总结

    一.获取当前文件的路径1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName获取模块的完整路径,包括文件名. 2. System.Environment.CurrentDirectory获取和设置当前目录(该进程从中启动的目录)的完全限定目录. 3. System.IO.Directory.GetCurrentDirectory() 获取应用程序的当前工作目录.这个不一定是程序从中启动的目录啊,有可能程序放在C:

  • C# WinForm编程获取文件物理路径的方法

    本文介绍如何在使用C#开发WinForm程序时,获取程序文件的物理路径.这个物理路径可以用于定位程序所在的目录,从而进行日志创建等扩展操作. 在C#开发时,可以很方便的获取程序文件的物理路径..NET Framework提供了一个AppDomain.CurrentDomain类,这个类有一个静态属性,那就是BaseDirectory,它就保存了程序文件的物理路径.我们可以使用ToString()的方法来将其读出. 复制代码 代码如下: /// <summary> /// 返回程序路径(即工作路

  • WinForm相对路径的陷阱

    本文所述为使用WinForm相对路径时需要注意的陷阱.这类错误经常会遇到!现分析如下供大家参考. 在Window系统上利用相对路径进行操作时,有一个"当前目录"的概念,如果程序中是利用相对路径进行操作,系统会认为是在当前目录下进行操作,即 相对路径 等于 当前目录 + 相对路径 所组成的绝对路径. 应用程序默认的当前目录为:程序入口所在路径. 并且在WinForm中,OpenFileDialog.RestoreDirectory 或 SaveFileDialog.SaveFileDia

  • C#新手常犯的错误汇总

    本文所述为C#新手常犯的错误,但是实际上很多有经验的程序员也经常犯这些错误,对此特别整理了一下,供大家参考.具体如下: 1.遍历List的错误,比如如下代码: List<String> strList =newList<String> for(int i =0; i<strList.Count; i++) { strList.RemoveAt(i); } 这段代码看上去是删除了所有元素,实际上每次调用RemoveAt方法会导致List元素索引重排,最后导致元素没有完全删除.

  • 《Python学习手册》学习总结

    本篇文章是作者关于在学习了<Python学习手册>以后,分享的学习心得,在此之前,我们先给大家分享一下这本书: 下载地址:Python学习手册第4版 之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册>. 在前两章节都是对基本的信息做了概述,我们从第三章开始. 第三章 如何运行程序 import进行模块导入只能运行一次,多次运行需使用reload. 模块往往是变量名的封装,被认为是

  • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)

    末日这天写篇博客吧,既然没来,那就纪念一下. 这次谈谈自制控件,也就是自定义控件,先上图,再说 1.扩展OpenFileDialog,在OpenFileDialog中添加各种文件(.txt,.jpg,.excel等等)的预览功能 2.重写ListBox,增加折叠.鼠标背影.分类等功能 -----------------------------分割线--------------------------------------------------------------一.扩展OpenFileD

  • 深入浅析WinForm 进程、线程及区别介绍

    一.进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动. 它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体. Process 类,用来操作进程. 命名空间:using System.Diagnostics; Process.Start("calc"); //打开计算器 Process.Start("mspaint"); //打开画图 Process.Start("iexplore" , "http://www.

  • Winform控件SaveFileDialog用于保存文件

    SaveFileDialog用于保存文件,供大家参考,具体内容如下 1.新建Winform窗体应用程序,命名为SaveFileDialogDemo. 2.在界面上添加一个按钮的控件(用于打开保存文件对话框),添加文本控件,用于输入要保存的内容. 3.后台代码实现: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;

  • Winform OpenFileDialog打开文件对话框

    OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter:要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*". FilterIndex:在对话框中选择的文件筛选器的索引,如果选第一项就设为1. RestoreDirectory:控制对话框在关闭之前是否恢复当前目录. FileName:第一个在对话框中显示的文件或最后一个选取的文件. Titl

随机推荐