C#获得程序的根目录以及判断文件是否存在的实例讲解

一:获取根目录的方法

取得控制台应用程序的根目录方法

方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径

方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集

取得WinForm应用程序的根目录方法

1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径

2、Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称

3、Directory.GetCurrentDirectory();//获取应用程序的当前工作目录

4、AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集

5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称

取得web应用程序的根目录方法

1.HttpContext.Current.Server.MapPath("~/configs/ChannelUsers.xml")

HttpContext.Current

返回当前请求的 HttpContext 对象。如此我们就可以直接访问Request、Response、Session、Application等对象,和Page中访问等同。

我们无需再将Page用参数的方式传递到我们的类库对象中。

HttpContext.Current.Session["name"] = "猪八戒";
string name = HttpContext.Current.Request.Param["name"];
HttpContext.Current.Response.Write("猪八戒好吃懒做!");

获取网站根目录的方法有几种如:

Server.MapPath(Request.ServerVariables["PATH_INFO"])
Server.MapPath("/")
Server.MapPath("")
Server.MapPath(".")
Server.MapPath("../")
Server.MapPath("..")
Page.Request.ApplicationPath

运行结果:

C:\Inetpub\wwwroot\EnglishClub\manage\WebForm1.aspx
C:\Inetpub\wwwroot\
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\
C:\Inetpub\wwwroot\EnglishClub

以上的方法可以在.aspx中访问,但是如果你在。cs文件就不能用。

HttpContext.Current.Server.MapPath();
System.Web.HttpContext.Current.Request.PhysicalApplicationPath 

在.cs文件中可以用。

但是HttpContext.Current.Server.MapPath();这个获取的是文件的路径而不是根目录。

只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath 这个才是获取的根目录,在写获取数据库路径是应该用这个,其他的都有问题。

二:判断文件及文件夹是否存在的方法

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class Default3 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
   ShowPic.Visible = false;//初始化不显示
   ShowText.Visible = false;//初始化不显示
  }
  protected void Button1_Click(object sender, EventArgs e)
  {

   if (Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存在就创建file文件夹
   {
    Directory.CreateDirectory(Server.MapPath("~/upimg/hufu"));
   }

   //Directory.Delete(Server.MapPath("~/upimg/hufu"), true);//删除文件夹以及文件夹中的子目录,文件 

   //判断文件的存在

   if (File.Exists(Server.MapPath("~/upimg/Data.html")))
   {
    Response.Write("Yes");

    //存在文件

   }

   else
   {
    Response.Write("No");
    //不存在文件
    File.Create(MapPath("~/upimg/Data.html"));//创建该文件

   }

   string name = GetFiles.FileName;//获取已上传文件的名字
   string size = GetFiles.PostedFile.ContentLength.ToString();//获取已上传文件的大小
   string type = GetFiles.PostedFile.ContentType;//获取已上传文件的MIME
   string postfix = name.Substring(name.LastIndexOf(".") + 1);//获取已上传文件的后缀
   string ipath = Server.MapPath("upimg") +"\\"+ name;//获取文件的实际路径
   string fpath = Server.MapPath("upfile") + "\\" + name;
   string dpath = "upimg\\" + name;//判断写入数据库的虚拟路径

   ShowPic.Visible = true;//激活
   ShowText.Visible = true;//激活

   //判断文件格式
   if (name == "") {
   Response.Write("<script>alert('上传文件不能为空')</script>");
   }

   else{

    if (postfix == "jpg" || postfix == "gif" || postfix == "bmp" || postfix == "png")
    {
     GetFiles.SaveAs(ipath);
     ShowPic.ImageUrl = dpath;
     ShowText.Text = "你上传的图片名称是:" + name + "<br>" + "文件大小:" + size + "KB" + "<br>" + "文件类型:" + type + "<br>" + "存放的实际路径为:" + ipath;

    }

    else
    {
     ShowPic.Visible = false;//隐藏图片
     GetFiles.SaveAs(fpath);//由于不是图片文件,因此转存在upfile这个文件夹
     ShowText.Text = "你上传的文件名称是:" + name + "<br>" + "文件大小:" + size + "KB" + "<br>" + "文件类型:" + type + "<br>" + "存放的实际路径为:" + fpath;

    }

   }

  }
}

以上这篇C#获得程序的根目录以及判断文件是否存在的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C#判断本地文件是否处于打开状态的方法

    本文实例讲述了C#判断本地文件是否处于打开状态的方法.分享给大家供大家参考.具体分析如下: 对于应用程序,有时候可能需要判断某个文件是否已经被打开,也就是指是否被某个流连接着.这在对文件的读写比较频繁的程序中尤为重要,因为一个文件同一时刻只能有一个流连接的.下面的代码也许能有所帮助. public class FileStatus { [DllImport("kernel32.dll")] private static extern IntPtr _lopen(string lpPat

  • C#实现判断文件夹存在与否并创建文件夹的方法

    本文实例讲述了C#实现判断文件夹存在与否并创建文件夹的方法.分享给大家供大家参考,具体如下: protected void Button1_Click(object sender, EventArgs e) { if (Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存在就创建file文件夹 { Directory.CreateDirectory(Server.MapPath("~/upimg/hu

  • C#获取项目指定目录下文件的方法

    本文实例讲述了C#获取项目指定目录下文件的方法.分享给大家供大家参考.具体如下: public List<FileInfo> GetFiles() { string path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory,"Files\\"); //获取项目物理路径 string[] fileType=new string[]{"pdf\\","pps\\",

  • c# 判断指定文件是否存在的简单实现

    复制代码 代码如下: private void button2_Click(object sender, EventArgs e)        {            if (File.Exists(@"E:\exists.txt"))            {                MessageBox.Show("文件存在");            }            else            {                Mess

  • C#获得程序的根目录以及判断文件是否存在的实例讲解

    一:获取根目录的方法 取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2.AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集 取得WinForm应用程序的根目录方法 1.Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径 2.Application.Startup

  • python中判断文件编码的chardet(实例讲解)

    1.实测,这个版本在32位window7和python3.2环境下正常使用. 2.使用方法:把解压后所得的chardet和docs两个文件夹拷贝到python3.2目录下的Lib\site-packages目录下就可以正常使用了. 3.判断文件编码的参考代码如下: file = open(fileName, "rb")#要有"rb",如果没有这个的话,默认使用gbk读文件. buf = file.read() result = chardet.detect(buf)

  • php判断文件上传图片格式的实例详解

    php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImagetype( $type ); $filetype = ['jpg', 'jpeg', 'gif', 'bmp', 'png']; if (! in_array($type, $filetype)) { return "不是图片类型"; } 如上如果用户修改文件后缀为png jpeg等无法满

  • jQuery.uploadify文件上传组件实例讲解

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好,无刷新,带上传进度等等.在最近的短信平台开发中,使用Uploadify进行文件上传. Uploadify官网地址是:http://www.uploadify.com/ 可满足项目开发需求. 下载地址:http://www.uploadify.com/wp-content/uploads/files/

  • JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)

    一.课程概述 在Web应用系统开发中,文件上传功能是非常常用的功能,今天来主要讲讲JavaWeb中的文件上传功能的相关技术实现,并且随着互联网技术的飞速发展,用户对网站的体验要求越来越高,在文件上传功能的技术上也出现许多创新点,例如异步上传文件,拖拽式上传,黏贴上传,上传进度监控,文件缩略图,大文件断点续传,大文件秒传等等. 本课程需要的基础知识: 了解基本的Http协议内容 基本IO流操作技术 Servlet基础知识 javascript/jQuery技术基础知识 二.文件上传的基础 对于文件

  • python读取文件指定行内容实例讲解

    python读取文件指定行内容 import linecache text=linecache.getline(r'C:\Users\Administrator\Desktop\SourceCodeofMongoRedis\chapter_5\generate_string.py',10) 第十行内容为# info = '''1000001 王小小''' 实例扩展: 本文实例讲述了Python3实现从文件中读取指定行的方法.分享给大家供大家参考.具体实现方法如下: ''' 遇到问题没人解答?小编

  • python模块中判断全局变量的赋值的实例讲解

    1.在模块中,我们需要判断__name__是否被赋值为"__main__". python fibo.py <arguments> 2.在脚本执行的情况下,模块的__name__属性将被赋值为__main__,这就是原因所在. $ python fibo.py 50 0 1 1 2 3 5 8 13 21 34 3.若以模块导入,则不会执行: >>> import fibo >>> 知识点扩展: Python动态声明变量赋值代码实例 通过

  • php判断时间戳是否为今天实例讲解

     本教程操作环境:windows7系统.PHP7.1版.DELL G3电脑 php判断指定时间戳是不是今天的方法 实现思想: 使用date()格式化今天的日期,将其转为"年月日"格式 使用date()格式化指定时间戳,将其转为"年月日"格式 使用"=="运算符判断是否相等,如果相等则指定时间戳是今天 实现代码: <?php header('content-type:text/html;charset=utf-8'); $timestamp

  • JavaScript判断文件是否存在的实例代码

    一.业务场景 最近一直在做和文件上传和下载相关的开发,在涉及到下载的时候,我使用如下的方法进行下载 //获取或者赋值一个下载路径 let downUrl; //采用如下的方式可以直接下载文件 window.location.href = downUrl; 业务问题:如果这个文件不存在,会出现页面跳转的情况: 比如:1.刚好文件存储服务器挂机了 2.或者刚好文件存储服务器上的文件被人删除了 如上的不正常访问都会导致下载功能出现问题,对用户来说不友好的是出现页面跳转的情况 这里如果我们在下载的时候知

  • 使用shell脚本判断文件后缀的方法实例

    目录 shell脚本判断文件后缀 附shell提取文件后缀名,并判断其是否为特定字符串 总结 shell脚本判断文件后缀 有时候需要判断文件名后缀来区分文件类型,进而进行不同的操作.以下是获取文件名后缀和文件名前缀的两个函数,由于shell脚本函数只能返回0-255,为了将结果返回,就直接使用echo输出,可以用$()进行捕获. #!/bin/bash # ----------------------------------------------------------------------

随机推荐