//创建文件夹
Directory.CreateDirectory(Server.MapPath("a"));
Directory.CreateDirectory(Server.MapPath("b"));
Directory.CreateDirectory(Server.MapPath("c"));
//移动b到a
Directory.Move(Server.MapPath("b"), Server.MapPath("a\\b"));
//删除c
Directory.Delete(Server.MapPath("c"));

//2.---------文件创建、复制、移动、删除---------

//创建文件
//使用File.Create创建再复制/移动/删除时会提示:文件正由另一进程使用,因此该进程无法访问该文件
//改用 FileStream 获取 File.Create 返回的 System.IO.FileStream 再进行关闭就无此问题
FileStream fs;
fs = File.Create(Server.MapPath("a.txt"));
fs.Close();
fs = File.Create(Server.MapPath("b.txt"));
fs.Close();
fs = File.Create(Server.MapPath("c.txt"));
fs.Close();
//复制文件
File.Copy(Server.MapPath("a.txt"), Server.MapPath("a\\a.txt"));
//移动文件
File.Move(Server.MapPath("b.txt"), Server.MapPath("a\\b.txt"));
File.Move(Server.MapPath("c.txt"), Server.MapPath("a\\c.txt"));
//删除文件
File.Delete(Server.MapPath("a.txt"));

//3.---------遍历文件夹中的文件和子文件夹并显示其属性---------

if(Directory.Exists(Server.MapPath("a")))
{
     //所有子文件夹
     foreach(string item in Directory.GetDirectories(Server.MapPath("a")))
     {
         Response.Write("<b>文件夹:" + item + "</b><br/>");
         DirectoryInfo directoryinfo = new DirectoryInfo(item);
         Response.Write("名称:" + directoryinfo.Name + "<br/>");
         Response.Write("路径:" + directoryinfo.FullName + "<br/>");
         Response.Write("创建时间:" + directoryinfo.CreationTime + "<br/>");
         Response.Write("上次访问时间:" + directoryinfo.LastAccessTime + "<br/>");
         Response.Write("上次修改时间:" + directoryinfo.LastWriteTime + "<br/>");
         Response.Write("父文件夹:" + directoryinfo.Parent + "<br/>");
         Response.Write("所在根目录:" + directoryinfo.Root + "<br/>");
         Response.Write("<br/>");
     }

//所有子文件
     foreach (string item in Directory.GetFiles(Server.MapPath("a")))
     {
         Response.Write("<b>文件:" + item + "</b><br/>");
         FileInfo fileinfo = new FileInfo(item);
         Response.Write("名称:" + fileinfo.Name + "<br/>");
         Response.Write("扩展名:" + fileinfo.Extension +"<br/>");
         Response.Write("路径:" + fileinfo.FullName +"<br/>");
         Response.Write("大小:" + fileinfo.Length +"<br/>");
         Response.Write("创建时间:" + fileinfo.CreationTime +"<br/>");
         Response.Write("上次访问时间:" + fileinfo.LastAccessTime +"<br/>");
         Response.Write("上次修改时间:" + fileinfo.LastWriteTime +"<br/>");
         Response.Write("所在文件夹:" + fileinfo.DirectoryName +"<br/>");
         Response.Write("文件属性:" + fileinfo.Attributes +"<br/>");
         Response.Write("<br/>");
     }
}

//4.---------文件读写---------

if (File.Exists(Server.MapPath("a\\a.txt")))
{
     StreamWriter streamwrite = new StreamWriter(Server.MapPath("a\\a.txt"));
     streamwrite.WriteLine("木子屋");
     streamwrite.WriteLine("http://www.mzwu.com/");
     streamwrite.Write("2008-04-13");
     streamwrite.Close();

StreamReader streamreader = new StreamReader(Server.MapPath("a\\a.txt"));
     Response.Write(streamreader.ReadLine());
     Response.Write(streamreader.ReadToEnd());
     streamreader.Close();
}

获取文件的版本信息:
FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D:\\TEST.DLL");
textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion;

更改文件属性,删除只读文件:

  下例欲将E:\test.txt文件拷贝至D:\tmp\test.txt,但D:\tmp\test.txt已经存在。

//File.Copy(sourceFile,destinationFile,true); 用来拷贝文件
//当destinationFile已经存在时,无法将文件file1拷贝到目标文件,
//因此先删除destination文件,File.Delete()方法不能删除只读文件,
//因此,如果文件属性为只读(Attributes属性中会包含有"ReadOnly"),
//先把文件属性重置为Normal,然后再删除:
string file1="E:\\test.txt";
string destinationFile="d:\\tmp\\test.txt";
if(File.Exists(destinationFile))
{
 FileInfo fi=new FileInfo(destinationFile);
 if(fi.Attributes.ToString().IndexOf("ReadOnly")!=-1)
  fi.Attributes=FileAttributes.Normal;
  File.Delete(destinationFile);
}
File.Copy(file1,destinationFile,true);

判断文件是否存在:File.Exists(string filePath)

  判断目录是否存在:Directory.Exists("D:\\LastestVersion")

  按行读取文件:

int fileCount=0;
// Open the file just specified such that no one else can use it.
StreamReader sr = new StreamReader(textBox1.Text.Trim());
while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它
{
 listBox1.Items.Add(sr.ReadLine());
 fileCount++;
}
sr.Close();

按行写入文件:
StreamWriter sw = new StreamWriter("D:\\result.txt");
for(int i=0;i<10;i++)
{
 sw.WriteLine("这是第"+i.ToString()+"行数据");
}

C#追加文件
StreamWriter sw = File.AppendText(Server.MapPath(".")+"file://mytext.txt/");
sw.WriteLine("追逐理想");
sw.WriteLine("kzlll");
sw.WriteLine(".NET笔记");
sw.Flush();
sw.Close();

C#拷贝文件
string OrignFile,NewFile;
OrignFile = Server.MapPath(".")+"file://mytext.txt/";
NewFile = Server.MapPath(".")+"file://mytextcopy.txt/";
File.Copy(OrignFile,NewFile,true);

C#删除文件
string delFile = Server.MapPath(".")+"file://mytextcopy.txt/";
File.Delete(delFile);

C#移动文件
string OrignFile,NewFile;
OrignFile = Server.MapPath(".")+"file://mytext.txt/";
NewFile = Server.MapPath(".")+"file://mytextcopy.txt/";
File.Move(OrignFile,NewFile);

C#创建目录
// 创建目录c:\sixAge
DirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");
// d1指向c:\sixAge\sixAge1
DirectoryInfo d1=d.CreateSubdirectory("sixAge1");
// d2指向c:\sixAge\sixAge1\sixAge1_1
DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");
// 将当前目录设为c:\sixAge
Directory.SetCurrentDirectory("c:\\sixAge");
// 创建目录c:\sixAge\sixAge2
Directory.CreateDirectory("sixAge2");
// 创建目录c:\sixAge\sixAge2\sixAge2_1
Directory.CreateDirectory("sixAge2\\sixAge2_1");

递归删除文件夹及文件
<%@ Page Language=C#%>
<%@ Import namespace="System.IO"%>
<Script runat=server>
public void DeleteFolder(string dir)
{
    if (Directory.Exists(dir)) //如果存在这个文件夹删除之
    {
        foreach(string d in Directory.GetFileSystemEntries(dir))
        {
            if(File.Exists(d))
                File.Delete(d); //直接删除其中的文件
            else
                DeleteFolder(d); //递归删除子文件夹
        }
        Directory.Delete(dir); //删除已空文件夹
        Response.Write(dir+" 文件夹删除成功");
    }
    else
        Response.Write(dir+" 该文件夹不存在"); //如果文件夹不存在则提示
}

protected void Page_Load (Object sender ,EventArgs e)
{
    string Dir="D:\\gbook\\11";
    DeleteFolder(Dir); //调用函数删除文件夹
}

C# 针对文件夹的操作的更多相关文章

  1. java io流 对文件夹的操作

    java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...

  2. python之文件的读写和文件目录以及文件夹的操作实现代码

    这篇文章主要介绍了python之文件的读写和文件目录以及文件夹的操作实现代码,需要的朋友可以参考下 为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用 ...

  3. Qt: 文件、文件夹的操作;

    Qt没有提供单独的函数来对文件.文件夹进行操作, 但是提供了两个类: QFile, QDir; 1.文件操作 ) 文件是否存在: QFile file("D:/test.jpg") ...

  4. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

  5. python 关于文件夹的操作

    在python中,文件夹的操作主要是利用os模块来实现的, 其中关于文件夹的方法为:os.lister() , os.path.join() , os.path.isdir() #  path 表示文 ...

  6. java文件夹相关操作 演示样例代码

    java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...

  7. java通过sftp对linux服务器文件夹进行操作

    本文主要讲sftp对linux服务器的文件和文件夹进行操作,windows server 服务器不支持. package com.lx.ftp; import java.io.File; import ...

  8. C# 对文件与文件夹的操作包括删除、移动与复制

    在.Net中,对文件(File)和文件夹(Folder)的操作可以使用File类和Directory类,也可以使用FileInfo类和DirectoryInfo类.文件夹(Folder)是只在Wind ...

  9. SFTP上传下载文件、文件夹常用操作

    SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd  d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文 ...

随机推荐

  1. mysql中InnoDB与MyISAM的区别

    两者的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成 ...

  2. VNC 安装 (适用Redhat 9.0 和 CentOS 7.0+)

    Remote Service 本文转自https://www.cnblogs.com/yjscloud/p/6695388.html VNC 安装 (适用Redhat 9.0 和 CentOS 7.0 ...

  3. DAS、NAS、SAN、iSCSI 存储方案概述

    (转自https://blog.csdn.net/tianlesoftware/article/details/6201346) 目前服务器所使用的专业存储方案有DAS.NAS.SAN.iSCSI几种 ...

  4. C语言之自定义__DATE__与__TIME__

    /******************************************************************* * > File Name: 05-ymd.c * &g ...

  5. 【模板】大数乘法(51nod 1027)

    #include<cstdio> #include<cstring> #include<algorithm> #define LL long long #defin ...

  6. How Can You Tell the Difference Between LINQ Methods and Query Builder Methods?

    LINQ's method syntax looks very similar to the query builder methods,except for one big difference:t ...

  7. iframe 与frameset

    frameset 元素可定义一个框架集.它被用来组织多个窗口(框架).每个框架存有独立的文档.在其最简单的应用中,frameset 元素仅仅会规定在框架集中存在多少列或多少行.您必须使用 cols 或 ...

  8. Drools介绍与使用

    Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法对所编写的规则求值.Drools 允许使用声明方式表达业务逻辑.可以使用非 XML 的本地语言编写规则,从而便于学习和理解 ...

  9. NYOJ2 括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0<N<=1 ...

  10. JNA调用库文件

    最近项目中要集成厂商的卡口摄像头,需要通过jna调用库函数接收卡口相机抓拍的过车数据.本文记录了Java调用C语言动态库(jna)的调用方式.回调函数.结构体等. JNA全称Java Native A ...