using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Security.AccessControl;
using System.Security.Permissions;
namespace Bll
{
public class FolderHelper
{
//判断文件夹是否存在
public static bool checkFolderExits(string path)
{
DirectoryInfo dir = new DirectoryInfo(path);
if (dir.Exists)//文件夹存在
{
return true;
}
else
{
//dir.Create();//不存在就创建一个
return false;
}
}
//创建一个文件夹,存在就创建失败
public static bool CreateNewFolder(string path)
{
DirectoryInfo dir = new DirectoryInfo(path); if (!dir.Exists)
{
dir.Create();
return true;
}
else
return false;
}
/// <summary>
/// 在指定目录下创建指定名称文件夹
/// </summary>
/// <param name="ParentsPath"></param>
/// <param name="NewFolderName"></param>
/// <returns></returns>
public static bool CreateNewFolder(string ParentsPath, string NewFolderName)
{
string CreatePath = ParentsPath + @"\" + NewFolderName;
DirectoryInfo dir = new DirectoryInfo(CreatePath); if (!dir.Exists)
{
dir.Create();
return true;
}
else
return false;
}
/// <summary>
/// 返回目录下的所有文件名
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static ArrayList getAllFiles(string path)
{
DirectoryInfo dir = new DirectoryInfo(path);
if (dir.Exists)
{
FileInfo[] fileinfo = dir.GetFiles();
ArrayList list = new ArrayList();
foreach (FileInfo f in fileinfo)
{
list.Add(f.Name);
}
return list;
}
else
return null;
}
/// <summary>
/// 计算文件夹的大小
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
public static long DirSize(DirectoryInfo d)
{
long Size = ;
// Add file sizes.
FileInfo[] fis = d.GetFiles();//获得目录文件列表
foreach (FileInfo fi in fis)
{
Size += fi.Length;
}
// Add subdirectory sizes.
DirectoryInfo[] dis = d.GetDirectories();//获取目录子目录列表
foreach (DirectoryInfo di in dis)
{
Size += DirSize(di);
}
return Size;
}
/// <summary>
/// 把文件夹得大小转换成比较合适的表示单位
/// </summary>
/// <param name="size"></param>
/// <returns></returns>
public static string ViewSize(long size)
{
long m=size;
string viewstr; if ((m / ) > )//表示可以转换成KB
{
m = m / ;//转换成KB if ((m / ) > )//表示可以转换成MB
{
m = m / ;//转换成MB了 if ((m / ) > )//表示可以转换成GB
{
m = m / ;//转换成GB了
viewstr = m.ToString() + "GB";
}
else
{
viewstr = m.ToString() + "MB";
}
}
else
{
viewstr = m.ToString() + "KB";
}
}
else
{
viewstr = m.ToString() + "byte";
}
return viewstr;
}
/// <summary>
/// 删除指定目录和内容
/// </summary>
/// <param name="dir"></param>
/// <returns></returns>
public static bool delDir(string dir)
{
bool flag = false;
DirectoryInfo d = new DirectoryInfo(dir);
if (d.Exists)//判断目录是否存在
{
try
{
d.Delete();
flag = true;
}
catch (Exception e) { flag = false; }
}
return flag;
}
/// <summary>
/// 删除指定文件
/// </summary>
/// <param name="fil"></param>
/// <returns></returns>
public static bool delFile(string fil)
{
bool flag = false;
FileInfo d = new FileInfo(fil);
if (d.Exists)//判断目录是否存在
{
try
{
d.Delete();
flag = true;
}
catch (Exception e) { flag = false; }
}
return flag;
}
public static void Copy(string sourceDirectory, string targetDirectory)
{
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory); CopyAll(diSource, diTarget);
}
/// <summary>
/// 复制目录及子文件到指定目录
/// </summary>
/// <param name="source"></param>
/// <param name="target"></param>
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
// Check if the target directory exists, if not, create it.
if (Directory.Exists(target.FullName) == false)
{
Directory.CreateDirectory(target.FullName);
} // Copy each file into it's new directory.
foreach (FileInfo fi in source.GetFiles())
{
Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
} // Copy each subdirectory using recursion.
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
{
DirectoryInfo nextTargetSubDir =
target.CreateSubdirectory(diSourceSubDir.Name);
CopyAll(diSourceSubDir, nextTargetSubDir);
}
} /// <summary>
/// 循环读取某个目录下的所有文件和目录,查询有关每一项的一些信息。返回一个文件列表
/// </summary>
/// <param name="strCurrentDir"></param>
public static List<fileEntity> FileView(string strCurrentDir)
{
List<fileEntity> fileList = new List<fileEntity>();
DirectoryInfo dir = new DirectoryInfo(strCurrentDir); foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())//这个循环再读取文件的信息
{
try
{
//FileSystemInfo 对象可以表示文件或目录,从而可以作为 FileInfo 或 DirectoryInfo 对象的基础。 当分析许多文件和目录时,请使用该基类。
FileInfo fi;
DirectoryInfo di;
//创建一个自己写的实体类的实体
fileEntity newfile = new fileEntity();
if (fsi is FileInfo)//外层循环读取文件信息
{
//表示当前fsi是文件
fi = (FileInfo)fsi;
newfile.fileName = fi.Name;
newfile.fileExt = fi.Extension;
newfile.fileSize = fi.Length;
newfile.FileModify = fi.LastWriteTime;
//通过扩展名来选择文件显示图标
switch (newfile.fileExt)
{
case ".gif":
newfile.picName = "gif.gif";
break;
default:
newfile.picName = "other.gif";
break;
}
newfile.picName = "<img src='" + newfile.picName + "' width=25 height=20>";
}
else
{
di = (DirectoryInfo)fsi;
newfile.fileName = di.Name;
newfile.fileSize = DirSize(di);//调用计算文件夹大小的方法
newfile.FileModify = di.LastWriteTime;
newfile.picName = "<img src='directory.gif' width=25 height=20>";
}
fileList.Add(newfile);
}
catch (Exception e) { }
}
return fileList; } /// <summary>
/// 显示目录和文件
/// </summary>
/// <param name="path"></param>
public static void All(string path)
{
FileInfo fi;//文件
DirectoryInfo di;//目录
DirectoryInfo dir=null;
int i = ; //控制行的颜色
try
{
dir = new DirectoryInfo(path);
}
catch (Exception e) { }
foreach (FileSystemInfo fsi in dir.GetFileSystemInfos())
{
try
{
fileEntity newfile = new fileEntity();
FolderEntity folder = new FolderEntity();
newfile.fileName = "";
newfile.picName = "";
newfile.fileExt = "";
newfile.fileSize = ;
folder.folderName = "";
folder.picName = ""; i += ;
if (fsi is FileInfo)//判断当前读取的是不是一个文件
{
//表示当前fsi是文件
fi = (FileInfo)fsi;
newfile.fileName = fi.Name;
newfile.fileExt = fi.Extension;
newfile.fileSize = fi.Length;
newfile.FileModify = fi.LastWriteTime; //将文件加上可以下载文件的链接 newfile.fileName = "<a href='........'></a>"; //通过扩展名来选择文件显示图标 //Response.Write(Session["DataBasePath"].ToString()+"\\filetype\\"+pfun.getFileExt(FileExt)+".gif"); if (fsi.Exists)
{
switch (newfile.fileExt)
{
case ".gif":
newfile.picName = "gif.gif";
break;
default:
newfile.picName = "other.gif";
break;
}
}
else
{
newfile.picName = "unknown.gif";
} /*
switch(FileExt)
{
case ".gif":
FilePic = "gif.gif";
break;
default:
FilePic = "other.gif";
break;
}
*/ newfile.picName = "<img src='filetype/" + newfile.picName + "' width=16 height=16>"; }
else
{
//当前为目录
di = (DirectoryInfo)fsi;
folder.folderName = di.Name; //给目录加上链接 folder.folderName = "<a href='.......'><a>";
folder.lastTime = di.LastWriteTime;
folder.picName = "<img src='filetype/folder.gif' width=16 height=16>"; }
}catch(Exception e){}
} }
}
}

C#文件帮助类FoderHelper的更多相关文章

  1. php 文件日志类

    php文件日志类,按年月日组织目录结构. <?php class FileLog { private $_filepath; //文件路径 private $_filename; //日志文件名 ...

  2. C++文件流类与文件流对象

    文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件 ...

  3. 使用Java的多线程和IO流写一个文件复制功能类

    创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...

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

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 j ...

  5. PHP文件处理类

    /** * 文件读写类 * 读取时,支持跳过N个/行字符然后再读取M个/行字符 * 支持每次读取时使用回调函数 * * 示例: * $file = new File('a.txt', 'r'); * ...

  6. 自动扫描FTP文件工具类 ScanFtp.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  7. 读取Config文件工具类 PropertiesConfig.java

    package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...

  8. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

    迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...

  9. C# - 文件操作类

    除了封装数据流的类 System.IO命名空间中还提供了可以操作文件和目录的类 Directory类 ns:System.IO Level:Object=>Directory 表示目录的类 用于 ...

随机推荐

  1. 国内maven镜像,快的飞起

    在oschina关来关去的烦恼下,终于受不了去寻找其他公共库了. 阿里云maven镜像 <mirrors> <mirror> <id>alimaven</id ...

  2. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  3. iOS 相机

    本章节主要为之前项目 JXHomepwner 添加照片功能(项目地址).具体任务就是显示一个 UIImagePickerController 对象,使用户能够为 JXItem 对象拍照并保存.拍摄的照 ...

  4. PyQt4入门学习笔记(四)

    在PyQt4中的事件和信号 事件 所有的GUI应用都是事件驱动的.事件主要是来自于应用的使用者,但是像互联网连接,窗口管理器或者计时器也可以产生事件.当我们调用应用的exec_()方法时,应用就进入了 ...

  5. Oracle SQL性能优化

    (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table) ...

  6. HTML5 oninput实时监听输入框值变化的完美方案

    在网页开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理组合快 ...

  7. 做linux运维工程师,必须要掌握以下几个工具

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...

  8. 国外远控软件DarkComet-RAT

    下载地址:[点此下载] 使用步骤: 注册noip.org账号创建主机地址. 安装并配置DUC. 配置监听端口 配置NO-IP Updater 然后点击Update ,配置成功则会提示Success. ...

  9. Linux2.6内核协议栈系列--TCP协议2.接收

    1.排队机制 接收输入TCP报文时,有三个队列: ● 待处理队列 ● 预排队队列 ● 接收队列 接收队列包含了处理过的TCP数据段,也就是说,去除了全部的协议头,正准备将数据复制到用户应用程序.接收队 ...

  10. iOS-集成支付宝支付、微信支付简单总结

    支付宝快捷支付: 官方文档中,支付宝说建议我们使用支付时要讲签名过程放在服务器端,这样安全.同时给的demo中签名是在本地移动端做的...不过支付宝的集成还是较简单的. 为了安全签名当然放后台做了.我 ...