C#文件操作工具类

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

namespace ReadLog.Public
{
    public class FileHelper
    {
        string[] format = { "*.jpg", "*.doc", "*.exe", "*.pdf", "*.xls" };
        #region 讀取文件 +string ReadFile(string path)
        /// <summary>
        /// 讀取文件
        /// </summary>
        /// <param name="path">文件路徑</param>
        public string ReadFile(string path)
        {
            //FileStream sFile = new FileStream(path, FileMode.Open);
            //byte[] byData = new byte[sFile.Length];
            //sFile.Read(byData, 0, byData.Length);
            //string fileContent = System.Text.Encoding.UTF8.GetString(byData);
            //return fileContent;
            string content = String.Empty;
            StreamReader reader = new StreamReader(path, GetFileEncodeType(path));
            return reader.ReadToEnd();
        }
        #endregion

        #region 删除文件夹下面所有文件 void deleteAll(string delpath, string geshi)
        /// <summary>
        /// 删除文件夹下面所有文件
        /// </summary>
        /// <param name="oldpngPath">待删除文件路径</param>
        /// <param name="newpngPath">删除到的新目录</param>
        /// <param name="geshi">操作文件的格式 例如:*.png、*.xml</param>
        public void deleteAll(string delpath, string geshi)
        {
            string[] files = Directory.GetFiles(delpath, geshi);
            foreach (string file in files)
            {
                File.Delete(file);
            }
        }
        #endregion

        #region 複製文件夹下面所有文件 +void copyALl(string oldpngPath, string newpngPath, string geshi)
        /// <summary>
        /// 複製文件夹下面所有文件
        /// </summary>
        /// <param name="oldpngPath">待复制文件路径</param>
        /// <param name="newpngPath">复制到的新目录</param>
        /// <param name="geshi">操作文件的格式 例如:*.png、*.xml</param>
        public void copyALl(string oldpngPath, string newpngPath, string geshi)
        {
            string[] files = Directory.GetFiles(oldpngPath, geshi);
            foreach (string file in files)
            {
                string otherFile = Path.Combine(oldpngPath, Path.GetFileName(file));
                File.Copy(file, newpngPath + "\\" + Path.GetFileName(file));
            }
        }
        #endregion

        #region 移动文件夹下的所有文件   void moveAll(string olderpath, string topath)
        /// <summary>
        /// 移动文件夹下的所有文件
        /// </summary>
        /// <param name="olderpath">待移动的文件目录</param>
        /// <param name="topath">新目录</param>
        public void moveAll(string olderpath, string topath)
        {
            string[] files = Directory.GetFiles(olderpath, format[0]);
            foreach (string file in files)
            {
                File.Move(file, topath); //移动文件
            }
        }
        #endregion

        #region 獲取一個文件夾下面所有文件 +string[] GetAllFiles(string path, string geshi)
        /// <summary>
        /// 獲取一個文件夾下面所有文件
        /// </summary>
        /// <param name="path"></param>
        /// <param name="geshi">文件類型</param>
        /// <returns></returns>
        public string[] GetAllFiles(string path, string geshi)
        {
            string[] files = Directory.GetFiles(path, geshi);
            return files;
        }
        #endregion

        #region 複製單個文件 + void copyOneFile(string oldfilePath, string newfilePath)
        /// <summary>
        /// 複製單個文件
        /// </summary>
        /// <param name="oldfilePath">文件原來的全路徑</param>
        /// <param name="newfilePath">文件新的全路徑</param>
        public void copyOneFile(string oldfilePath, string newfilePath, string newFileName)
        {
            if (!Directory.Exists(newfilePath))
            {
                Directory.CreateDirectory(newfilePath);
            }
            File.Copy(oldfilePath, newfilePath + newFileName);

        }
        #endregion

        #region 移動一個文件 + void MoveOneFile(string oldfilePath, string newfilePath)
        /// <summary>
        /// 移動一個文件
        /// </summary>
        /// <param name="oldfilePath">文件原來的全路徑</param>
        /// <param name="newfilePath">文件新的全路徑</param>
        public void MoveOneFile(string oldfilePath, string newfilePath, string newFileName)
        {
            if (!Directory.Exists(newfilePath))
            {
                Directory.CreateDirectory(newfilePath);
            }
            File.Move(oldfilePath, newfilePath + newFileName);

        }
        #endregion

        #region 刪除一個文件 +void DeleteOneFile(string oldfilePath)
        /// <summary>
        /// 刪除一個文件
        /// </summary>
        /// <param name="oldfilePath">文件路徑</param>
        public void DeleteOneFile(string oldfilePath)
        {

            File.Delete(oldfilePath);

        }
        #endregion

        #region 讀取目錄的時候進行的提示
        public void ReadFileLogOnly(string path)
        {
            Console.WriteLine(string.Format("正在進入{0}目錄中", path));
            if (!Directory.Exists(path))
            {
                Console.WriteLine(String.Format("文件目錄{0}不存在", path));
                //return;
                //Directory.CreateDirectory(erpLogPath);
            }
            else
            {
                Console.WriteLine(String.Format("文件目錄{0}訪問正常", path));
            }
        }
        public void ReadFileLogAndCreate(string path)
        {
            Console.WriteLine(string.Format("正在進入{0}目錄", path));
            if (!Directory.Exists(path))
            {
                Console.WriteLine(String.Format("文件目錄{0}不存在,正在進行創建", path));

                Directory.CreateDirectory(path);
                Console.WriteLine(String.Format("文件目錄{0}創建成功", path));
            }
            else
            {
                Console.WriteLine(String.Format("文件目錄{0}訪問正常", path));
            }
        }
        #endregion

        #region 獲取問價的編碼方式 +System.Text.Encoding GetFileEncodeType(string filename)
        /// <summary>
        /// 獲取問價的編碼方式
        /// </summary>
        /// <param name="filename">文件路徑</param>
        /// <returns>文件的編碼方式</returns>
        public System.Text.Encoding GetFileEncodeType(string filename)
        {
            System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
            System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
            Byte[] buffer = br.ReadBytes(2);
            if (buffer[0] >= 0xEF)
            {
                if (buffer[0] == 0xEF && buffer[1] == 0xBB)
                {
                    return System.Text.Encoding.UTF8;
                }
                else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
                {
                    return System.Text.Encoding.BigEndianUnicode;
                }
                else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                {
                    return System.Text.Encoding.Unicode;
                }
                else
                {
                    return System.Text.Encoding.Default;
                }
            }
            else
            {
                return System.Text.Encoding.Default;
            }

        }
        #endregion
    }
}

C#文件操作工具类

时间: 2024-10-16 12:41:28

C#文件操作工具类的相关文章

FileUtils.java 本地 文件操作工具类

package Http; import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException; /** * * 本地文件操作工具类 *保存文本 *保存图片 * Created by lxj-pc on 2017/6/27. */public class FileUtils { public static void saveText(String cont

Code片段 : .properties属性文件操作工具类 &amp; JSON工具类

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 java.util.Properties 是一个属性集合.常见的api有如下: load(InputStream inStream)  从输入流中读取属性 getProperty(String key)  根据key,获取属性值 getOrDefault(Object key, V defaultValue)

Java IO(文件操作工具类)

FileOperate实现的功能: 1. 返回文件夹中所有文件列表 2. 读取文本文件内容 3. 新建目录 4. 新建多级目录 5. 新建文件 6. 有编码方式的创建文件 7. 删除文件 8. 删除指定文件夹下所有文件 9. 复制单个文件 10. 复制整个文件夹的内容 11. 移动文件 12. 移动目录 13. 建立一个可以追加的bufferedwriter 14. 得到一个bufferedreader Java代码    package utils; import java.io.Buffer

文件操作工具类

package utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.Outpu

AIR中方便的文件操作工具类

最近做项目用到了air 需要随时读写文件,所以封装了一个工具类,在此记录,方便自己和他人日后使用. FileUtils.as代码: 1 ///////////////////////////////////////////////////////////////////////////////////////// 2 // TXIEJUN Confidential 3 // Copyright 2014. All rights reserved. 4 // 5 // FileUtils.as 6

java实现简单文件操作工具类

本篇带来关于文件操作的简单工具类,包括文件夹创建,文件夹删除,文件创建,文件重命名,文件复制,文件删除.如果需要文件夹复制,其实就是创建文件夹和复制文件的操作.下面直接上代码 package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.Fil

小米开源文件管理器MiCodeFileExplorer-源码研究(4)-文件操作工具类FileOperationHelper

文件操作是非常通用的,注释都写在源代码中了,不多说~需要特别说明的是,任务的异步执行和IOperationProgressListener.拷贝和删除等操作,是比较费时的,采用了异步执行的方式~ Android异步执行,我也是初次了解,在CSDN上找了一篇文章,后续写个单独的例子,单独写1篇介绍.http://blog.csdn.net/xufenghappy6/article/details/7343899异步执行+事件通知 是一种比较流行的模式,比同步等待很多时候要好. 另外,特别需要说明的

Android文件操作工具类(转)

Android文件操作工具类(转) 2014/4/3 18:13:35  孤独的旅行家  博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东西. 如果有什么补充或修改,欢迎大家提出宝贵的建议. import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;impo

文件操作工具类: 文件/目录的创建、删除、移动、复制、zip压缩与解压.

FileOperationUtils.java package com.xnl.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.Fi