C#基础 创建文件,文件夹

文件夹,文件这是常见的,怎么创建?要不要先判断是否存在?非常非常基础的知识点

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace dazilianxi.wenjian
{
    public  class WenJianLei
    {
        const string main_Dir = @"D:/WenTest";
        const string wenjianpath = @"D:\WenTest\second.txt";
        //根据文件夹全路径创建文件夹
        public static void CreateDir(string subdir)
        {
            string path = main_Dir + "/" + subdir;
            if (Directory.Exists(path))
            {
                Console.WriteLine("此文件夹已经存在,无需创建!");
            }
            else
            {
                Directory.CreateDirectory(path);
                Console.WriteLine(path+" 创建成功!");
            }
        }
        //根据文件夹名称创建文件夹
        public static void CreateNameDir(string name)
        {
            if(name.Length!=0)
            {
                CreateDir(name);
            }
            else
            {
                Console.WriteLine("必须指定文件夹名称,才能创建!");
            }
        }

        public static void CreateWenJian()
        {
            if (!File.Exists(wenjianpath))
            {
                Console.WriteLine("文件创建成功!");
                TextWriter tw = new StreamWriter(wenjianpath);
                tw.WriteLine("创建完文件加的第一行~~");
                tw.Close();
            }
            else
            {
                TextWriter tw = new StreamWriter(wenjianpath,true);
                tw.WriteLine("已经存在文件,再加一行吧~~");
                tw.Close();
            }
        }
       //文件大小计算
        public static void CreateMoreSize()
        {
            long size = GetDirectoryLength(@"D:\WenTest");
            if (!File.Exists(wenjianpath))
            {
                if (size <= 1)
                {
                    TextWriter tw = new StreamWriter(wenjianpath);
                    tw.WriteLine("创建完文件加的第一行~~");
                    tw.Close();
                }
                else
                {
                    Console.WriteLine("无法创建,已经超过限定大小了~~");
                }

            }
            else
            {
                TextWriter tw = new StreamWriter(wenjianpath, true);
                tw.WriteLine("已经存在文件,再加一行吧~~");
                tw.Close();
            }
        }
        public static long GetDirectoryLength(string path)
        {
            if (!Directory.Exists(path))
            {
                return 0;
            }

            long size = 0;

            //遍历指定路径下的所有文件
            DirectoryInfo di = new DirectoryInfo(path);
            foreach (FileInfo fi in di.GetFiles())
            {
                size += fi.Length;
            }

            //遍历指定路径下的所有文件夹
            DirectoryInfo[] dis = di.GetDirectories();
            if (dis.Length > 0)
            {
                for (int i = 0; i < dis.Length; i++)
                {
                    size += GetDirectoryLength(dis[i].FullName);
                }
            }

            return size;
        }
    }
}

先判断文件夹是否存在,再决定是否创建文件夹

如果文件夹不存在,就创建新文件夹。 
如果文件夹已存在,提示已经存在。

using System.IO;

namespace ConsoleApplication26
{
    class Program
    {
        //文件存放的根文件夹
        const string main_Dir = @"F:/Test";

        static void Main(string[] args)
        {
            CreateNamedDir("User01");
            Console.ReadKey();
        }

        //根据文件夹全路径创建文件夹
        private static void CreateDir(string subdir)
        {
            string path = main_Dir + "/" + subdir;
            if (Directory.Exists(path))
            {
                Console.WriteLine("此文件夹已经存在,无需创建!");
            }
            else
            {
                Directory.CreateDirectory(path);
                Console.WriteLine(path+ "创建成功!");
            }
        }

        //根据文件夹名称创建文件夹
        private  static void CreateNamedDir(string name)
        {
            if (name.Length != 0)
            {
                CreateDir(name);
            }
            else
            {
                Console.WriteLine("必须规定创建文件夹的名称");
            }
        }
    }
}

结果: 
如果文件夹不存在,多了一个新的文件夹。

如果文件夹已存在,提示已经存在。

先判断文件是否存在,再决定是否创建文件

如果文件不存在,创建文件并在文件中写入一行内容。 
如果文件存在,在当前文件中追加一行内容。

using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"F:\Test\second.txt";
            if (!File.Exists(path))
            {
                //File.Create(path);
                TextWriter tw = new StreamWriter(path);
                tw.WriteLine("创建完文件加的第一行~~");
                tw.Close();
            }
            else
            {
                TextWriter tw = new StreamWriter(path,true);
                tw.WriteLine("已经存在文件,再加一行吧~~");
                tw.Close();
            }
        }
    }
}

结果: 
如果文件不存在,创建文件并在文件中写入一行内容。

如果文件存在,在当前文件中追加一行内容。

注意: 
File.Create(path)返回FileStream类型 
TextWriter tw = new StreamWriter(path)返回TextWriter类型 
2行语句不能同时存在,否则报错"正由另一进程使用,因此该进程无法访问此文件"。

创建文件之前计算文件夹总大小,如果大小超过规定,放弃创建文件

using System;
using System.IO;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"F:\Test\third.txt";

            //计算指定文件夹的大小
            long size = GetDirectoryLength(@"F:\Test");
            if (!File.Exists(path))
            {
                if (size <= 500)
                {
                    TextWriter tw = new StreamWriter(path);
                    tw.WriteLine("创建完文件加的第一行~~");
                    tw.Close();
                }
                else
                {
                    Console.WriteLine("无法创建,已经超过限定大小了~~");
                }

            }
            else
            {
                TextWriter tw = new StreamWriter(path, true);
                tw.WriteLine("已经存在文件,再加一行吧~~");
                tw.Close();
            }

            //Console.WriteLine(size.ToString());
            Console.ReadKey();
        }

        //递归计算文件夹大小
        static long GetDirectoryLength(string path)
        {
            if (!Directory.Exists(path))
            {
                return 0;
            }

            long size = 0;

            //遍历指定路径下的所有文件
            DirectoryInfo di = new DirectoryInfo(path);
            foreach (FileInfo fi in di.GetFiles())
            {
                size += fi.Length;
            }

            //遍历指定路径下的所有文件夹
            DirectoryInfo[] dis = di.GetDirectories();
            if (dis.Length > 0)
            {
                for (int i = 0; i < dis.Length; i++)
                {
                    size += GetDirectoryLength(dis[i].FullName);
                }
            }

            return size;
        }
    }
}

结果: 

原地址:https://www.cnblogs.com/darrenji/p/3652062.html

原文地址:https://www.cnblogs.com/Dumb-dog/p/12096774.html

时间: 2024-10-12 15:29:39

C#基础 创建文件,文件夹的相关文章

Java 基础【12】java.io.file 文件(文件夹) 创建和删除

使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识. JDK API 中描述: 来段代码会看的更清楚: File file1 = new File("F:/AAA/BBB/CCC"); if (file1.mkdirs()) { System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file1.getPath() + ",上级文件为:" + file1.getParent());

Python3基础 os mkdirs 创建多层文件夹

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: # OS operating system # python扩平台的语言 import os os.makedirs('E:\\a\\b\\c') #如果目录已经存在则抛出异常,但是 E:\\a\\b与 e:\\a\\c 不会出现冲突 result: 第一次运行的结果, ===

RHEL6基础四十九之RHEL文件(夹)权限进阶篇

ACL权限管理 ACL(Access Control List,访问控制列表)主要是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户.单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助. 例①:目录 /home/acl 的权限为:drwxr-x---,所有者与所属组均为 root,在不改变所有者的前提下,只要求other组的用户justin 对该目录有完全访问权限 (rwx)(justi

如何在桌面上创建程序文件夹让每个登录用户都能访问呢?

如何在桌面上创建程序文件夹让每个登录用户都能访问呢? ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.com/lander/2413018更新时间:2019/8/

eclipse maven工程中src/main/resources目录下创建的文件夹是包图标的解决方法

如图:在src/main/resources目录下创建的文件夹却以包的图标显示  修改方法: 入下图,按顺序1 ,2,3,4操作,把3处remove,在4处添加**  修改后如下:  然后点击完成后,文件夹图标显示正常了 

Windows下使用创建多层文件夹 SHCreateDirectoryEx 函数需要注意的问题

1.在使用SHCreateDirectoryEx函数创建多层文件夹的过程中,发现在文件夹路径中,只能使用\\而不能使用/,否则将创建文件夹失败. 2.下面为在MFC中使用的代码片段 CString new_path = "C:/abc/d/e"; //SHCreateDirectoryEx函数必须使用\\,不能使用/ new_path.Replace("/", "\\"); //判断是否存在该文件夹 if (!PathIsDirectory(ne

从零開始写游戏引擎(一) - project创建以及文件夹设置还有版本号控制

一句话提要 好的開始等于成功了一半. 创建文件夹结构 project文件夹下最好分为以下几个文件夹 Docs - 开发文档,设计文档 Assets - 角色,动作,模型和音效等 Source - 代码,project文件或者makefile也放在这里,假设有引用第三方的lib,在里面建立一个3rdParty的文件夹,放在里面. Temp - 用于防止编译生成的文件 Lib - 放置编译好的lib文件,将source编译成lib能够更好地保护源码. Game - 用于放置release buid,

判断文件夹是否存在,不存在则创建对应文件夹

// 判断文件夹是否存在,不存在则创建对应文件夹 NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *path = @"/Users/apple/Desktop/导出路径/嘻嘻"; BOOL isDir = FALSE; BOOL isDirExist = [fileManager fileExistsAtPath:path isDirectory:&isDir]; if(!(isDirE

通过jcifs.jar 创建远程文件和文件夹

package com.project.remoteUrl;import java.io.File;import java.io.InputStream;import java.io.OutputStream;import java.io.FileInputStream;import java.io.BufferedInputStream;import java.io.BufferedOutputStream; import jcifs.smb.SmbFile;import jcifs.smb.