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[]);
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();
if (buffer[] >= 0xEF)
{
if (buffer[] == 0xEF && buffer[] == 0xBB)
{
return System.Text.Encoding.UTF8;
}
else if (buffer[] == 0xFE && buffer[] == 0xFF)
{
return System.Text.Encoding.BigEndianUnicode;
}
else if (buffer[] == 0xFF && buffer[] == 0xFE)
{
return System.Text.Encoding.Unicode;
}
else
{
return System.Text.Encoding.Default;
}
}
else
{
return System.Text.Encoding.Default;
} }
#endregion
}
}
C#文件操作工具类的更多相关文章
- Code片段 : .properties属性文件操作工具类 & JSON工具类
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 j ...
- 文件操作工具类: 文件/目录的创建、删除、移动、复制、zip压缩与解压.
FileOperationUtils.java package com.xnl.utils; import java.io.BufferedInputStream; import java.io.Bu ...
- JAVA文件操作工具类(读、增、删除、复制)
使用JAVA的JFinal框架 1.上传文件模型类UploadFile /** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * ...
- Android文件操作工具类(转)
Android文件操作工具类(转) 2014/4/3 18:13:35 孤独的旅行家 博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东 ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(4)-文件操作工具类FileOperationHelper
文件操作是非常通用的,注释都写在源代码中了,不多说~需要特别说明的是,任务的异步执行和IOperationProgressListener.拷贝和删除等操作,是比较费时的,采用了异步执行的方式~ An ...
- Java文件操作工具类(复制、删除、重命名、创建路径)
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
- Java文件操作工具类
import com.foriseland.fjf.lang.DateUtil;import org.apache.commons.io.FileUtils;import org.slf4j.Logg ...
- Java IO(文件操作工具类)
FileOperate实现的功能: 1. 返回文件夹中所有文件列表 2. 读取文本文件内容 3. 新建目录 4. 新建多级目录 5. 新建文件 6. 有编码方式的创建文件 7. 删除文件 8. 删除指 ...
- 文件操作工具类FileUtils
package yqw.java.util; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import ...
随机推荐
- 【Unity】自定义编辑器窗口——拓展编辑器功能
最近学习了Unity自定义编辑器窗口,下面简单总结,方便用到时回顾. 新建一个脚本: using UnityEngine; using System.Collections; using UnityE ...
- 【转】c#的逆向工程-IL指令集
转载自:http://www.cnblogs.com/davyjiang/articles/1337400.html 一些 IL 语言解释: 跳转指令集合Beq 如果两个值相等,则将控制转移到目标指令 ...
- [数据结构]最小生成树算法Prim和Kruskal算法
最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总 ...
- hbase源码系列(八)从Snapshot恢复表
在看这一章之前,建议大家先去看一下snapshot的使用.这一章是上一章snapshot的续集,上一章了讲了怎么做snapshot的原理,这一章就怎么从snapshot恢复表. restoreSnap ...
- Spring Boot war包&jar包对比
使用 Maven对SpringBoot程序进行打包处理有两种格式:一种是war包,一种是jar包. 虽然我们将springboot应用打包成了war包,但是我们依然可以使用 java -jar的方式来 ...
- webRTC源码下载 Windows Mac(iOS) Linux(Android)全
webRTC源码下载地址:https://pan.baidu.com/s/18CjClvAuz3B9oF33ngbJIw 提取码:wl1e Windows版:visual studio 2017工 ...
- jQuery&CSS 顶部和底部固定浮动工具栏 兼容IE6
http://www.cnblogs.com/lhj588/archive/2013/04/02/2994639.html —————————————————————————————————————— ...
- java BlockingQueue 用法
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文 ...
- JS函数重载解决方案
JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数 ...
- Development Tools
Introduction Even Chris created his article of Useful Reference Books ages ago I just bumped into it ...