Form Now On...

导航

 

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   "找不到指定的文件";   
    }

posted on 2012-02-12 20:31  zjwei55  阅读(250)  评论(0编辑  收藏  举报