码迷,mamicode.com
首页 > Windows程序 > 详细

C# 文件与路径操作

时间:2018-06-22 19:29:21      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:system   arp   erb   getpath   元素   efi   filter   根目录   本地   

OpenFileDialog

private void btnOpenFileDialog_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.InitialDirectory = @"C:\SeeSharp\LYH";                   //设置起始路径
            openFileDialog.Title = "打开文件";                                      //对话框标题
            openFileDialog.Filter = "JXI Vector file|*.iq|实信号|*.if";             //设置过滤器
            openFileDialog.FilterIndex = 1;                                         //默认过滤器中类型
            openFileDialog.Multiselect = false;                                     //是否允许多选
            openFileDialog.RestoreDirectory = true;                                 //再次打开是否记住上次路径
            if (openFileDialog.ShowDialog() != DialogResult.OK) return;             //打开对话框,对话框结果不为OK则返回
            if (openFileDialog.Multiselect)
            {
                textBox1.Text = "";
                foreach (var item in openFileDialog.FileNames) { textBox1.AppendText(item + "\r\n"); }
            }
            else
            {
                textBox1.Text = openFileDialog.FileName;
            }
        }

SaveFileDialog

private void btnSaveFileDialog_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Title = "打开文件";                                      //对话框标题
            saveFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";  //设置过滤器
            saveFileDialog.FilterIndex = 0;                                         //默认过滤器中类型
            saveFileDialog.RestoreDirectory = true;                                 //保存对话框是否记忆上次打开的目录
            if (saveFileDialog.ShowDialog() != DialogResult.OK) return;             //打开对话框,对话框结果不为OK则返回
            textBox1.Text = saveFileDialog.FileName;
        }

FolderBrowserDialog

private void btnFolderBrowserDialog_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            folderBrowserDialog.SelectedPath = @"C:\SeeSharp\LYH\SeeSharpTools";        //设置默认路径
            folderBrowserDialog.Description = "请选择一个文件夹";                       //设置提示信息
            if (folderBrowserDialog.ShowDialog() == DialogResult.OK)                    //打开对话框 //获取选中结果
            {
                textBox1.Text = folderBrowserDialog.SelectedPath;
            }
        }

获取特殊目录

static void SpecialDirectory()
        {
            string dir;            

            //获取当前目录(即该进程从中启动的目录)的完全限定路径。
            dir = Environment.CurrentDirectory;
            //备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:/”)。
            //如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:/mySubDirectory”)。
            dir = Directory.GetCurrentDirectory();

            //获取当前目录的上级目录
            dir = Path.GetFullPath("..");

            //桌面路径
            dir = "桌面路径:" 
                + Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);

            //ProgramData文件夹路径
            dir = "ProgramData文件夹路径:" 
                + Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

            //我的文档文件夹路径
            dir = "我的文档文件夹路径" 
                + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
           
            //获得当前可执行的exe文件名
            dir = "Process.GetCurrentProcess().MainModule.FileName:" 
                + Process.GetCurrentProcess().MainModule.FileName;
           
            //获取基目录,它由程序集冲突解决程序用来探测程序集。
            dir = "AppDomain.CurrentDomain.BaseDirectory:" 
                + AppDomain.CurrentDomain.BaseDirectory;
          
            //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。(如:D:/project/集团客户短信服务端/bin/Debug)
            dir = "System.Windows.Forms.Application.StartupPath:" 
                + System.Windows.Forms.Application.StartupPath;
           
            //获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
            dir = "System.Windows.Forms.Application.ExecutablePath:" 
                + System.Windows.Forms.Application.ExecutablePath;
           
            //获取或设置包含该应用程序的目录的名称。 
            dir = "AppDomain.CurrentDomain.SetupInformation.ApplicationBase:" 
                + AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            
            Console.ReadKey();
        }

获取当前目录及其父目录

        /// <summary>
        /// 获取当前目录及当前目录第n级的父目录
        /// </summary>
        /// <param name="level">父目录级别,大于等于0</param>
        /// <returns></returns>
        public static string CurrentDirectory(int level=0)
        {
            string str = Environment.CurrentDirectory;
            for (int i = 0; i < level; i++)
                str = str.Substring(0, str.LastIndexOf(@"\"));
            return str;
        }

获取已知路径中的元素

static void pth()
        {
            string dir;
            string filePath = "C:\\JiYF\\BenXH\\BenXHCMS.xml";       
            dir = "获取文件的全路径:" + Path.GetFullPath(filePath);//-->C:\JiYF\BenXH\BenXHCMS.xml           
            dir = "获取文件所在的目录:" + Path.GetDirectoryName(filePath);//-->C:\JiYF\BenXH           
            dir = "获取文件的名称含有后缀:" + Path.GetFileName(filePath);//-->BenXHCMS.xml           
            dir = "获取文件的名称没有后缀:" + Path.GetFileNameWithoutExtension(filePath); //-->BenXHCMS           
            dir = "获取路径的后缀扩展名称:" + Path.GetExtension(filePath);//-->.xml            
            dir = "获取路径的根目录:" + Path.GetPathRoot(filePath);//-->C:\
            Console.ReadKey();
        }

文件操作

private void FileOperations()
        {
            string sourcePath = "sourcePath";
            string destpath = "destpath";
            
            //复制文件到目标路径
            File.Copy(sourcePath, destpath);

            //删除制定文件
            File.Delete(sourcePath);

            //移动文件到目标路径【重命名的实现方法】
            //sourcePath与destpath在不同目录下则为文件的移动,在同一目录下则为文件的重命名
            File.Move(sourcePath, destpath);

            //打开一个文本文件*.txt ,读取文件中数据,然后关闭该文件
            File.ReadAllText(sourcePath);

            //创建一个文件,向其中写入数据,如果此路径下有同名文件则会覆盖
            //【PS:对文件进行写入操作,如果路径下有同名文件则会进行覆盖,所以最好进行一次判断,跟用户交互一下在进行覆盖】
            File.WriteAllText(sourcePath, "要写入文件的字符串"); 
        }
参考 https://www.cnblogs.com/Zhang-silence/p/6866722.html 

C# 文件与路径操作

标签:system   arp   erb   getpath   元素   efi   filter   根目录   本地   

原文地址:https://www.cnblogs.com/lyh523329053/p/9215130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!