当前位置: 首页 > ai >正文

C#获取文件路径或者文件夹路径的方法

一、获取当前文件路径

1.System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

获取模块的完整路径,包括文件名。获取得到的是Module的文件名,如果在VS2008的调试环境中,获取的是 [程序名].vshost.exe的完整文件名。

例如:System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe

(本例包括以下各个示例均为在本人电脑下操作得到,其中C:\\Users\\zhzhx\\Documents为“我的文档”文件夹)

2.System.Environment.CurrentDirectory

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

例如:System.Environment.CurrentDirectory =  C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

3.System.IO.Directory.GetCurrentDirectory()

获取应用程序的当前工作目录。

例如:System.IO.Directory.GetCurrentDirectory() =  C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

 

其中,2和3这两个方法获得的路径是一样的,获得的是当前路径,这个路径不一定是程序所在的路径。任何会改变当前路径的方法都会改变它,例如:OpenFileDialog每换一次目录就会改变它。因此,用这两个方法获取程序路径并不可靠。

 

4. System.AppDomain.CurrentDomain.BaseDirectory

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

例如:System.AppDomain.CurrentDomain.BaseDirectory = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

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

例如:System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

 

其中,4和5这两个方法是可靠的获取程序路径的方法。返回的路径最末以"\"结尾。可以方便的在后面加入任何Path。当然就算没有也可以用Path.Combine来合并路径以获得想要的路径。

 

6. System.Windows.Forms.Application.StartupPath

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

例如:System.Windows.Forms.Application.StartupPath = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

这个方法也是可靠的获取程序路径的方法。不过返回的路径最末并没有"\"结尾。另外因为是Forms命名空间的。因此如果使用WPF还是不用的好。

7.System.Windows.Forms.Application.ExecutablePath

获取启动了应用程序的可执行文件的路径及文件名。

例如:System.Windows.Forms.Application.ExecutablePath = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

这个方法获取的是执行程序的完整文件名。是最可靠的方式,只需要去掉程序文件名就可以获得路径。

8.System.Threading.Thread.GetDomain().BaseDirectory

获取当前应用程序所在目录的路径,最后包含“\”。

System.Threading.Thread.GetDomain().BaseDirectory = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

9.this.GetType().Assembly.Location

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

this.GetType().Assembly.Location = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

 

二、获取系统特殊文件夹路径

System.Environment.GetFolderPath(SpecialFolder) 

例如:

System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) = C:\Users\zhzhx\Desktop //逻辑桌面,而不是物理文件系统位置。

System.Environment.GetFolderPath(Environment.SpecialFolder.Programs) = C:\Users\zhzhx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs //包含用户程序组的目录。

System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) = C:\Users\zhzhx\Documents //用作文档的公共储存库的目录。

System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) = C:\Users\zhzhx\Documents // “我的文档”文件夹。

以下不再一一叙述,同上面所示,只是写出各个Environment.SpecialFolder后缀名所对应的文件夹

Favorites,//用作用户收藏夹项的公共储存库的目录。

Startup,//对应于用户的“启动”程序组的目录。

Favorites,//用作用户收藏夹项的公共储存库的目录。             

Startup,//对应于用户的“启动”程序组的目录。

Recent, //包含用户最近使用过的文档的目录。

SendTo ,//包含“发送”菜单项的目录。

StartMenu ,//包含“开始”菜单项的目录。

MyMusic ,//“我的音乐”文件夹。

MyVideos , //文件系统目录,充当属于某个用户的视频的存储库。

DesktopDirectory , //用于物理上存储桌面上的文件对象的目录。

MyComputer ,//“我的电脑”文件夹。

NetworkShortcuts ,//文件系统目录,包含“网上邻居”虚拟文件夹中可能存在的链接对象。

Fonts ,//包含字体的虚拟文件夹。

Templates ,//用作文档模板的公共储存库的目录。

CommonStartMenu , //文件系统目录,包含在所有用户的“开始”菜单上都出现的程序和文件夹。此特殊文件夹仅对 Windows NT 系统有效。

CommonPrograms , //     存放多个应用程序共享的组件的文件夹。此特殊文件夹仅对 Windows NT、Windows 2000 和 Windows XP 系统有效。

CommonStartup ,//文件系统目录,包含在所有用户的“启动”文件夹中都出现的程序。此特殊文件夹仅对 Windows NT 系统有效。

CommonDesktopDirectory , //文件系统目录,包含在所有用户桌面上出现的文件和文件夹。此特殊文件夹仅对 Windows NT 系统有效。

ApplicationData ,// 目录,它用作当前漫游用户的应用程序特定数据的公共储存库。

PrinterShortcuts ,//文件系统目录,包含“打印机”虚拟文件夹中可能存在的链接对象。

LocalApplicationData ,// 目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。

InternetCache ,//用作 Internet 临时文件的公共储存库的目录。

Cookies ,//用作 Internet Cookie 的公共储存库的目录。

History ,//用作 Internet 历史记录项的公共储存库的目录。

CommonApplicationData ,//目录,它用作所有用户使用的应用程序特定数据的公共储存库。

Windows ,//Windows 目录或 SYSROOT。它与 %windir% 或 %SYSTEMROOT% 环境变量相对应。

System ,//“System”目录。

ProgramFiles ,// “Program files”目录。

MyPictures ,//“我的图片”文件夹。

UserProfile ,//     用户的配置文件文件夹。应用程序不应在此级别上创建文件或文件夹;它们应将其数据放在 System.Environment.SpecialFolder.ApplicationData所引用的位置之下。

SystemX86 ,//Windows“System”文件夹。

ProgramFilesX86 ,//“Program Files”文件夹。

CommonProgramFiles ,//用于应用程序间共享的组件的目录。

CommonProgramFilesX86 ,// “Program Files”文件夹。

CommonTemplates ,//文件系统目录,包含所有用户都可以使用的模板。此特殊文件夹仅对 Windows NT 系统有效。

CommonDocuments ,//文件系统目录,包含所有用户共有的文档。此特殊文件夹仅对装有 Shfolder.dll 的 Windows NT 系统、Windows 95 和 Windows98 系统有效。

CommonAdminTools ,//文件系统目录,包含计算机所有用户的管理工具。

AdminTools ,//文件系统目录,用于存储各个用户的管理工具。Microsoft Management Console (MMC) 会将自定义的控制台保存在此目录中,并且此目录将随用户一起漫游。

CommonMusic , //文件系统目录,充当所有用户共有的音乐文件的存储库。

CommonPictures ,//文件系统目录,充当所有用户共有的图像文件的存储库。

CommonVideos ,//文件系统目录,充当所有用户共有的视频文件的存储库。

Resources , //文件系统目录,包含资源数据。

LocalizedResources ,//文件系统目录,包含本地化资源数据。

CommonOemLinks ,//为了实现向后兼容,Windows Vista 中可以识别此值,但该特殊文件夹本身已不再使用。

CDBurning ,//文件系统目录,充当等待写入 CD 的文件的临时区域。

            

三、操作环境变量

利用System.Environment.GetEnvironmentVariable()方法可以很方便地取得系统环境变量。

例如:

System.Environment.GetEnvironmentVariable("windir") = C:\Windows

System.Environment.GetEnvironmentVariable("INCLUDE") = C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\

(本例在本人电脑上未能实现,路径为网上别人的博客上的路径)

System.Environment.GetEnvironmentVariable("TMP") = C:\Users\zhzhx\AppData\Local\Temp

System.Environment.GetEnvironmentVariable("TEMP") = C:\Users\zhzhx\AppData\Local\Temp

System.Environment.GetEnvironmentVariable("Path") = C:\Program Files\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;

 

四、 获Web应用程序的根目录方法

1HttpRuntime.AppDomainAppPath.ToString()

获取承载在当前应用程序域中的应用程序目录的物理驱动器路径。用于App_Data中获取。

2.Server.MapPath("") 或者 Server.MapPath("~/")

返回与Web服务器上的指定的虚拟路径相对的物理文件路径。

3.Request.ApplicationPath

获取服务器上ASP.NET应用程序的虚拟应用程序根目录。

转载于:https://www.cnblogs.com/zhzhx/archive/2013/06/03/3115102.html

http://www.xdnf.cn/news/10934.html

相关文章:

  • 谷歌离线地图FTP下载
  • IIS配置问题 Directory Listing Denied
  • MSDTC不可用解决办法
  • 个人博客搭建指南
  • 网吧游戏服务器虚拟机,用虚拟机亲自体验网咖无盘系统,终于知道网咖系统快的原因了...
  • 什么是J2EE?
  • 技巧-盗号怎么盗啊手机qq软件-小白攻防教学
  • nod32 linux升级方法,打造全自动的NOD32升级服务器
  • 【云计算学习教程】云计算虚拟化技术和容器技术详解
  • UNIX系统常用命令
  • 图片轮显效果大全
  • u-boot编译流程简要分析
  • OC内存管理
  • 实战 DeviceIoControl 之五:列举已安装的存储设备
  • Android jetpack最佳总结和实践
  • Windows CE 模拟器和远程调试工具
  • 按钮提交表单
  • 关于MySQL的文献M_什么是参考文献?文献类型标识码有,M、J、C、N、D、P、S、DB/OL、J/OL、N/OL等它们都代表什么意思?(提...
  • 中标麒麟服务器系统安装教程,安装国产Linux中标麒麟操作系统教程
  • 提升交际能力:8个技巧避免尬聊,寻找话题轻松聊天
  • 怎么完全卸载赛门铁克_赛门铁克(sep)卸载方法
  • 技术人如何搭建自己的技术博客
  • ARP病毒全析
  • Linux——sort命令详细使用方法
  • 新手学编程必会的100个代码
  • FR-E840-K 第二加减速使用方法
  • 网站流量统计分析
  • 你也能轻松破解CNKI 密码
  • QSetting
  • MySQL--内连接查询(inner join)