`
61party
  • 浏览: 1112239 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C#读取当前项目路径的方法

阅读更多

之前很郁闷,遍寻不着得到当前项目路径的方法(间接可以找到,但很别扭),今天偶然看到个blog,转载一下

//获取包含清单的已加载文件的路径或 UNC 位置。

public static string sApplicationPath = Assembly.GetExecutingAssembly ( ).Location;

//result: X:\xxx\xxx\xxx.dll (.dll文件所在的目录+.dll文件名)

//获取当前进程的完整路径,包含文件名(进程名)。

string str = this.GetType ( ).Assembly.Location;

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。

string str = System.Diagnostics.Process.GetCurrentProcess ( ).MainModule.FileName;

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

string str = System.Environment.CurrentDirectory;

//result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory;

//result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取和设置包含该应用程序的目录的名称。

string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

//result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str = System.Windows.Forms.Application.StartupPath;

//result: X:\xxx\xxx (.exe文件所在的目录)

//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string str = System.Windows.Forms.Application.ExecutablePath;

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。

string str = System.IO.Directory.GetCurrentDirectory ( );

//result: X:\xxx\xxx (.exe文件所在的目录)

在系统服务中最好用这个方式去取路径

string stmp = Assembly.GetExecutingAssembly ( ).Location;

stmp = stmp.Substring ( 0 , stmp.LastIndexOf ( '\\' ) );//删除文件名

if ( pathType == 1 )

return stmp + @"\inputLog.xml";

else if ( pathType == 2 )

return stmp + @"\MiddleDB.xml";

else

return stmp + @"\AppNo.xml";

using System.IO;

string path = "d:asdfasdf.bmp";

string fileName = Path.GetFileName(path); //文件名

string ext = Path.GetExtension(path); //扩展名

1、判定一个给定的路径是否有效,合法
通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以根据它来判断路径中是否包含非法字符;

2、如何确定一个路径字符串是表示目录还是文件
使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件
上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件;
3、获得路径的某个特定部分
Path.GetDirectoryName :返回指定路径字符串的目录信息。
Path.GetExtension :返回指定的路径字符串的扩展名。
Path.GetFileName :返回指定路径字符串的文件名和扩展名。
Path.GetFileNameWithoutExtension :返回不具有扩展名的路径字符串的文件名。
Path.GetPathRoot :获取指定路径的根目录信息。
4、准确地合并两个路径而不用去担心那个烦人的“\”字符
使用Path.Combine方法,它会帮你处理烦人的“\”。
5、获得系统目录的路径
Environment.SystemDirectory属性:获取系统目录的完全限定路径
Environment.GetFolderPath方法:该方法接受的参数类型为Environment.SpecialFolder枚举,通过这个方法可以获得大量系统 文件夹的路径,如我的电脑,桌面,系统目录等
Path.GetTempPath方法:返回当前系统的临时文件夹的路径
6、判断一个路径是绝对路径还是相对路径
使用Path.IsPathRooted方法
7、读取或设置当前目录
使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法
8、使用相对路径
设置当前目录后(见上个问题),就可以使用相对路径了。对于一个相对路径,我们可以使用Path.GetFullPath方法获得它的完 全限定路径(绝对路径)。
注意:如果打算使用相对路径,建议你将工作目录设置为各个交互文件的共同起点,否则可能会引入一些不易发现的安全隐患,被恶意用户利用来访问系统文件。

9、文件夹浏览对话框(FolderBrowserDialog类)
主要属性: Description:树视图控件上显示的说明文本,如上图中的“选择目录--练习”;RootFolder:获取或设置从其开始浏览的根文件夹,如上图中设置的我的电脑(默认为桌面);SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文件夹,关闭对话框时根据该属性获取用户用户选定的路径; ShowNewFolderButton:获取或设置是否显示新建对话框按钮;
主要方法: ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由SelectedPath属性获取用户选定的路径;
=====================================================================

1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。

2.System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。

3.System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录,有可能程序放在C:\xxx里,这个函数有可能返回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一样。对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码

string path = "";

if (System.Environment.CurrentDirectory ==AppDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等

...{path = AppDomain.CurrentDomain.BaseDirectory;

}else...{path = AppDomain.CurrentDomain.BaseDirectory + "Bin\";

}这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.

  1、Server.MapPath

  2、System.Windows.Forms.StartupPath

  3、Type.Assembly.Location方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。

分享到:
评论

相关推荐

    C#读取IIS网站物理路径

    以上内容详细介绍了C#中读取IIS网站物理路径的基本方法,包括`HttpServerUtility.MapPath`和`Microsoft.Web.Administration`库的使用。在实际项目中,理解这些概念和技术将有助于更有效地管理和操作IIS上的Web应用...

    C#取得当前文件夹下全部文件路径或文件名

    以上就是关于"C#取得当前文件夹下全部文件路径或文件名"的知识点介绍,包括如何使用`Directory`类的方法,递归遍历文件系统,以及相关的文件操作安全性和项目结构理解。在实际编程中,这些知识将帮助你更有效地处理...

    C#读取BIN文件内容

    在处理特定类型的二进制文件,如BIN文件时,C#提供了丰富的库和方法来读取和操作这些文件。BIN文件通常包含原始二进制数据,可能来自固件更新、程序执行代码或者数据存储。下面我们将详细讨论如何在C#中读取BIN文件...

    c# 读取wincc

    使用`OpcItem.Read()`方法来读取OPC项的当前值。此操作会返回一个包含读取结果的`OpcResult`对象,其中包含了变量的最新值。记得处理可能的异常,如连接失败或读取超时。 6. **处理数据**: 读取到的变量数据通常...

    C# 读取注册表信息

    在提供的压缩包文件"Ex12_17读取注册表信息"中,可能包含了一个C#项目或代码示例,用于演示上述过程。通过研究这个示例,你可以更深入地理解如何在实际项目中应用这些概念。记得在尝试任何注册表操作时,始终谨慎...

    C#中读取excel文件中数据并导入dataGridView添加读取ProgressBar进度及当前读取条目挨个

    在C#编程中,处理Excel文件是一项常见的任务,特别是在...总的来说,实现C#中读取Excel文件并显示进度条和当前状态的过程涉及文件操作、UI交互和多线程同步。通过合理的设计和编程,可以有效地提升应用程序的用户体验。

    C#读取word内容

    以下是如何使用C#读取Word文档内容的详细步骤和相关知识点: 首先,你需要在你的项目中添加对Microsoft Word 11.0 Object Library的引用。这是Office Interop库的一部分,它提供了对Word对象模型的访问。你可以通过...

    c# asp.net 读取项目中的文件,获取text里面定义的内容和值方法

    总的来说,读取C# ASP.NET项目中的文本文件是一个常见的任务,通过结合使用`Server.MapPath()`、`File`类的方法以及适当的文件内容处理,可以轻松完成这项工作。如果需要处理更复杂的数据格式,可能需要借助额外的库...

    c# Winform 读取PDF文件

    `LoadPdf`方法加载指定路径的PDF文件,`UpdatePage`方法将当前页渲染到PictureBox中。`nextPageButton_Click`和`prevPageButton_Click`事件处理程序分别用于向前和向后翻页。 需要注意的是,PDFiumViewer库仅提供...

    C#读取XML文件.pdf

    在标题中提到的“C#读取XML文件”是本文档的中心内容。描述部分重复了标题,没有提供额外的信息。标签部分为空,没有提供辅助分类或关键词。从给定的部分内容中,可以总结出一系列关于使用C#语言读取XML文件的技术点...

    C#读取XML文件并显示在DataGrid组件中

    本教程将深入探讨如何使用C#读取XML文件并将其内容展示在DataGrid组件上,这是一个常见且实用的功能,尤其适用于数据展示和管理。 首先,我们需要引入必要的命名空间,包括`System.Xml`用于处理XML文件,以及`...

    c#读取注册表

    1. 打开或创建注册表键:使用`OpenSubKey`方法,传入键的路径,可以是根键的子键。例如,要打开`HKEY_CURRENT_USER\Software\Microsoft\Windows`,可以这样写: ```csharp RegistryKey key = Registry.CurrentUser....

    WinForm,C#,FileStream读取文件

    在本场景中,我们关注的是如何使用C#的FileStream类来读取文件以及处理文件名和路径。FileStream是System.IO命名空间中的一个类,它允许我们与磁盘上的文件进行交互,例如读取、写入或追加数据。 首先,我们要实现...

    C#读取Usb使用记录.pdf

    总结来说,通过C#读取USB使用记录主要涉及对注册表的访问和解析,特别是在`HKEY_LOCAL_MACHINE`下的相关子项。开发人员需要了解注册表的结构,使用`RegistryKey`类进行操作,并结合系统事件和设备识别机制来跟踪USB...

    c#读取Word 项目中用

    ### C#读取Word文档的关键技术点 #### 1. 引入必要的命名空间 为了在C#中操作Word文档,首先需要引用`Microsoft.Office.Interop.Word`命名空间。这使得我们能够利用Microsoft Office应用程序编程接口(API)来控制...

    C#获取当前程序所在的文件夹

    在C#编程中,获取当前程序所在的文件夹是一项常见的任务,这有助于我们定位到执行程序的位置,以便读取、写入或操作与程序相关的资源。本文将深入探讨如何使用C#来实现这一功能,并扩展讨论相关知识,如路径处理、...

    C# 动态获取当前程序的图标

    3. **读取图标资源**:接下来,使用`System.Drawing.Icon.ExtractAssociatedIcon()`方法,我们可以从可执行文件中提取图标。 ```csharp Icon programIcon = Icon.ExtractAssociatedIcon(exePath); ``` 4. **获取...

    c#读取excel一格一格读可以读合并的

    标题提到的“c#读取excel一格一格读可以读合并的”指的是使用C#读取Excel文件时,如何正确处理合并单元格的情况。在Excel中,合并单元格是一种布局方式,它允许我们将多个单元格合并为一个大单元格,通常用于标题或...

    C#文件的读取与写入操作及其读取数据处理(注释详尽,相对路径,直接运行,测试成功!)

    在处理相对路径时,C#会根据当前执行程序的位置来解析。例如,“./Data/MyFile.txt”表示在执行程序的同一目录下的“Data”子目录中的文件。如果需要在不同平台上保持兼容性,可以使用`Path.Combine`方法来构建路径...

    C#的LOG日志读写操作

    在C#中,我们可以使用内置的`System.IO`命名空间中的类,如`StreamWriter`用于写入日志,`StreamReader`用于读取日志,以及`File`类来处理文件操作。以下是一个简单的日志写入示例: ```csharp using System; using...

Global site tag (gtag.js) - Google Analytics