zoukankan      html  css  js  c++  java
  • C#操作文件之二

    1.创建文件夹
    //using System.IO;
    Directory.CreateDirectory(%%1);


    2.创建文件
    //using System.IO;
    File.Create(%%1);

    3.删除文件
    //using System.IO;
    File.Delete(%%1);


    4.删除文件夹
    //using System.IO;
    Directory.Delete(%%1);

    5.删除一个目录下所有的文件夹
    //using System.IO;
    foreach (string dirStr in Directory.GetDirectories(%%1))
    {
        DirectoryInfo dir = new DirectoryInfo(dirStr);
        ArrayList folders=new ArrayList();
        FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
        for (int i = 0; i < folders.Count; i++)
        {
            FileInfo f = folders[i] as FileInfo;
            if (f == null)
            {
                DirectoryInfo d = folders[i] as DirectoryInfo;
                d.Delete();
            }
        }
    }

    6.清空文件夹
    //using System.IO;
    Directory.Delete(%%1,true);
    Directory.CreateDirectory(%%1);

    7.读取文件
    //using System.IO;
    StreamReader s = File.OpenText(%%1);
    string %%2 = null;
    while ((%%2 = s.ReadLine()) != null){
        %%3
    }
    s.Close();

    8.写入文件
    //using System.IO;
    FileInfo f = new FileInfo(%%1);
    StreamWriter w = f.CreateText();
    w.WriteLine(%%2);
    w.Close();

    9.写入随机文件
    //using System.IO;
    byte[] dataArray = new byte[100000];//new Random().NextBytes(dataArray);
    using(FileStream FileStream = new FileStream(%%1, FileMode.Create)){
    // Write the data to the file, byte by byte.
        for(int i = 0; i < dataArray.Length; i++){
            FileStream.WriteByte(dataArray[i]);
        }
    // Set the stream position to the beginning of the file.
        FileStream.Seek(0, SeekOrigin.Begin);
    // Read and verify the data.
        for(int i = 0; i < FileStream.Length; i++){
            if(dataArray[i] != FileStream.ReadByte()){
                //写入数据错误
                return;
            }
        }
    //"数据流"+FileStream.Name+"已验证"
    }

    10.读取文件属性
    //using System.IO;
    FileInfo f = new FileInfo(%%1);//f.CreationTime,f.FullName
    if((f.Attributes & FileAttributes.ReadOnly) != 0){
        %%2
    }
    else{
        %%3
    }

    11.写入属性
    //using System.IO;
    FileInfo f = new FileInfo(%%1);
    //设置只读
    f.Attributes = myFile.Attributes | FileAttributes.ReadOnly;
    //设置可写
    f.Attributes = myFile.Attributes & ~FileAttributes.ReadOnly;

    12.枚举一个文件夹中的所有文件夹
    //using System.IO;
    foreach (string %%2 in Directory.GetDirectories(%%1)){
        %%3
    }
    /*
    DirectoryInfo dir = new DirectoryInfo(%%1);
    FileInfo[] files = dir.GetFiles("*.*");
    foreach(FileInfo %%2 in files){
        %%3
    }
    */

    13.复制文件夹
    /*
    using System.IO;
    using System.Collections;
    */
    string path = (%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2+"\\";
    string parent = Path.GetDirectoryName(%%1);
    Directory.CreateDirectory(path + Path.GetFileName(%%1));
    DirectoryInfo dir = new DirectoryInfo((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 : %%1 + "\\");
    FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
    Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
    while (Folders.Count>0)
    {
                        FileSystemInfo tmp = Folders.Dequeue();
                        FileInfo f = tmp as FileInfo;
                        if (f == null)
                        {
                            DirectoryInfo d = tmp as DirectoryInfo;
                            Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path));
                            foreach (FileSystemInfo fi in d.GetFileSystemInfos())
                            {
                                Folders.Enqueue(fi);
                            }
                        }
                        else
                        {
                            f.CopyTo(f.FullName.Replace(parent, path));
                        }
    }

    14.复制目录下所有的文件夹到另一个文件夹下
    /*
    using System.IO;
    using System.Collections;
    */
    DirectoryInfo d = new DirectoryInfo(%%1);
    foreach (DirectoryInfo dirs in d.GetDirectories())
    {
        Queue<FileSystemInfo> al = new Queue<FileSystemInfo>(dirs.GetFileSystemInfos());
        while (al.Count > 0)
        {
            FileSystemInfo temp = al.Dequeue();
            FileInfo file = temp as FileInfo;
            if (file == null)
            {
                DirectoryInfo directory = temp as DirectoryInfo;
                Directory.CreateDirectory(path + directory.Name);
                foreach (FileSystemInfo fsi in directory.GetFileSystemInfos())
                    al.Enqueue(fsi);
            }
            else
                File.Copy(file.FullName, path + file.Name);
        }
    }

    15.移动文件夹
    /*
    using System.IO;
    using System.Collections;
    */
                    string filename = Path.GetFileName(%%1);
                    string path=(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2 + "\\";
                    if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2))
                        Directory.Move(%%1, path + filename);
                    else
                    {
                        string parent = Path.GetDirectoryName(%%1);
                        Directory.CreateDirectory(path + Path.GetFileName(%%1));
                        DirectoryInfo dir = new DirectoryInfo((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 : %%1 + "\\");
                        FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
                        Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
                        while (Folders.Count > 0)
                        {
                            FileSystemInfo tmp = Folders.Dequeue();
                            FileInfo f = tmp as FileInfo;
                            if (f == null)
                            {
                                DirectoryInfo d = tmp as DirectoryInfo;
                                DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path));
                                dpath.Create();
                                foreach (FileSystemInfo fi in d.GetFileSystemInfos())
                                {
                                    Folders.Enqueue(fi);
                                }
                            }
                            else
                            {
                                f.MoveTo(f.FullName.Replace(parent, path));
                            }
                        }
                        Directory.Delete(%%1, true);
                    }

    16.移动目录下所有的文件夹到另一个目录下
    /*
    using System.IO;
    using System.Collections;
    */
    string filename = Path.GetFileName(%%1);
                    if (Path.GetPathRoot(%%1) == Path.GetPathRoot(%%2))
                        foreach (string dir in Directory.GetDirectories(%%1))
                            Directory.Move(dir, Path.Combine(%%2,filename));
                    else
                    {
                        foreach (string dir2 in Directory.GetDirectories(%%1))
                        {
                            string parent = Path.GetDirectoryName(dir2);
                            Directory.CreateDirectory(Path.Combine(%%2, Path.GetFileName(dir2)));
                            string dir = (dir2.LastIndexOf("\\") == dir2.Length - 1) ? dir2 : dir2 + "\\";
                            DirectoryInfo dirdir = new DirectoryInfo(dir);
                            FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos();
                            Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dirdir.GetFileSystemInfos());
                            while (Folders.Count > 0)
                            {
                                FileSystemInfo tmp = Folders.Dequeue();
                                FileInfo f = tmp as FileInfo;
                                if (f == null)
                                {
                                    DirectoryInfo d = tmp as DirectoryInfo;
                                    DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", %%2));
                                    dpath.Create();
                                    foreach (FileSystemInfo fi in d.GetFileSystemInfos())
                                    {
                                        Folders.Enqueue(fi);
                                    }
                                }
                                else
                                {
                                    f.MoveTo(f.FullName.Replace(parent, %%2));
                                }
                            }
                            dirdir.Delete(true);
                        }
                    }

    17.以一个文件夹的框架在另一个目录创建文件夹和空文件
    /*
    using System.IO;
    using System.Collections;
    */
    bool b=false;
    string path = (%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2 + "\\";
    string parent = Path.GetDirectoryName(%%1);
    Directory.CreateDirectory(path + Path.GetFileName(%%1));
    DirectoryInfo dir = new DirectoryInfo((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 : %%1 + "\\");
    FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
    Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
    while (Folders.Count > 0)
    {
        FileSystemInfo tmp = Folders.Dequeue();
        FileInfo f = tmp as FileInfo;
        if (f == null)
        {
            DirectoryInfo d = tmp as DirectoryInfo;
            Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path));
            foreach (FileSystemInfo fi in d.GetFileSystemInfos())
            {
                Folders.Enqueue(fi);
            }
        }
        else
        {
            if(b) File.Create(f.FullName.Replace(parent, path));
        }
    }

    18.复制文件
    //using System.IO;
    File.Copy(%%1,%%2);

    19.复制一个文件夹下所有的文件到另一个目录
    //using System.IO;
    foreach (string fileStr in Directory.GetFiles(%%1))
        File.Copy((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "\\"+Path.GetFileName(fileStr),(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "\\"+Path.GetFileName(fileStr));

    20.提取扩展名
    //using System.IO;
    string %%2=Path.GetExtension(%%1);

    21.提取文件名
    //using System.IO;
    string %%2=Path.GetFileName(%%1);

    22.提取文件路径
    //using System.IO;
    string %%2=Path.GetDirectoryName(%%1);

    23.替换扩展名
    //using System.IO;
    File.ChangeExtension(%%1,%%2);

    24.追加路径
    //using System.IO;
    string %%3=Path.Combine(%%1,%%2);

    25.移动文件
    //using System.IO;
    File.Move(%%1,%%2+"\\"+file.getname(%%1));

    26.移动一个文件夹下所有文件到另一个目录
    foreach (string fileStr in Directory.GetFiles(%%1))
        File.Move((%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 +Path.GetFileName(fileStr): %%1 + "\\"+Path.GetFileName(fileStr),(%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 +Path.GetFileName(fileStr): %%2 + "\\"+Path.GetFileName(fileStr));

    27.指定目录下搜索文件
    /*
    using System.Text;
    using System.IO;
    */
    string fileName=%%1;
    string dirName=%%2;
        DirectoryInfo   dirc=new   DirectoryInfo(dirName);
        foreach(FileInfo   file   in   dirc.GetFiles()) {
            if(file.Name.IndexOf(fileName)>-1)
                return file.FullName;
            }
            foreach(DirectoryInfo   dir   in   dirc.GetDirectories())   {   
                return   GetFile(fileName,dir.FullName);   
            }
            return   "找不到指定的文件";   
        }

    Top
    收藏
    关注
    评论
  • 相关阅读:
    攻防世界web新手区前六关
    JS-数组基础知识3
    CSRF攻击的原理和spring security对CSRF攻击的解决方法
    Java开发微信公众号
    内部类
    Java Web整合开发(30) -- Spring的ORM模块
    win10安装mysql
    jquery 事件冒泡的介绍以及如何阻止事件冒泡
    jquery中attr和prop的区别介绍
    jQuery 层次选择器
  • 原文地址:https://www.cnblogs.com/zjwei55/p/2348290.html
Copyright © 2011-2022 走看看