工作需要定时自动解析文件并移动到指定目录,所以我抽空研究了一下c#的文件操作,这个总算是可以看见程序在跑的程序了,可视化相当直观。
文件和文件夹操作主要是directory类和directoryinfo类,比较浅显的区别是只是directoryinfo需要实例化使用,directory为静态函数。
把指定路径文件夹和里面的文件输出到两个listbox里
private void button2_Click(object sender, EventArgs e)//a地址 b地址里的目录 c目录里文件夹 dd每个文件夹里的文件 { listBox1.Items.Clear(); listBox2.Items.Clear(); DirectoryInfo a = new DirectoryInfo(@"D:\Youku Files\"); DirectoryInfo[] b = a.GetDirectories(); foreach (DirectoryInfo c in b) { this.listBox1.Items.Add(c.Name); FileSystemInfo[] d =c.GetFileSystemInfos(); foreach (FileSystemInfo dd ind) this.listBox2.Items.Add(dd.Name); } }
FYI:带\为文件夹里,不带\为文件
实例:如果存在done文件,就把xx移动到xx
private void button3_Click(object sender,EventArgs e) { DirectoryInfo address =new DirectoryInfo( @"D:\Youku Files\");//创建实例需要指定完整路径 DirectoryInfo[] mulu = address.GetDirectories(); foreach (DirectoryInfo wenjianjia in mulu) { string nameof_wenjianjia =wenjianjia.ToString(); string zimulu = address +nameof_wenjianjia + @"\done"; if (File.Exists(zimulu))//检查文件是否存在zimulu是一个文件 { DirectoryInfo Orign = newDirectoryInfo(address + nameof_wenjianjia); string NewFile =@"D:\Youku Files\youkudisk\"+nameof_wenjianjia;//必须输入文件夹名,否则报错 Orign.MoveTo(NewFile);//移动文件夹 } } }
寻找指定目录下有没有特定的文件
string[] a= Directory.GetFiles(@"D:\CloudMusic", "*.mp3");
移动复制文件(当前路径,移动路径)
File.Copy(@"D:\CloudMusic\"+c,eeee);
aa里的文件夹
DirectoryInfo aa = new DirectoryInfo(@"D:\CloudMusic\"); DirectoryInfo[]bb = aa.GetDirectories(); foreach(DirectoryInfo c inbb) { listBox1.Items.Add(c); }
aa里文件和文件夹
DirectoryInfoaa = new DirectoryInfo(@"D:\CloudMusic\"); FileSystemInfo[]bb = aa.GetFileSystemInfos(); foreach(FileSystemInfo c inbb) { listBox1.Items.Add(c); }
aa里的文件
DirectoryInfoaa = new DirectoryInfo(@"D:\CloudMusic\"); FileInfo[]bb = aa.GetFiles(); foreach(FileInfo c inbb) { listBox1.Items.Add(c); }