2015-04-01 134 views
0

移动文件很容易&在.NET清除我得到的是如何移动到sub-directory例如,假设我的源目标中有一个名为Joe_2.mp3的文件,我需要移动它到达目的地目录并且到最近修改的sub-folder(如果存在)。如果它不直接将其移动到目标目录中。我如何首先检查子目录&(如果它们存在)找到最近修改的子目录并移动它们的源文件?将文件移动到子目录

这是我用的是什么时,它是从directory1只是直招directory2

private string source = @"C:\\First\\"; 
private string unclear = @"C:\\Second\\"; 
public Form1() 
{ 
    InitializeComponent(); 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    DirectoryInfo FirstCheck = new DirectoryInfo(@"C:\\First\\"); 
    DirectoryInfo SecondCheck = new DirectoryInfo(@"C:\\Second\\"); 
    IEnumerable<string> list1 = FirstCheck.GetFiles("*.*").Select(fi => fi.Name); 
    IEnumerable<string> list2 = SecondCheck.EnumerateFiles("*", SearchOption.AllDirectories).Select(fi => fi.Name); 
    IEnumerable<string> missing = list1.Except(list2); 
    foreach (var file in missing) 
    { 
    var subdi = new DirectoryInfo(SecondCheck.ToString()); 
    var direcetories = subdi.EnumerateDirectories().OrderBy(d => d.CreationTime).Select(d => d.Name).ToList(); 
    File.Move(source, unclear); 
    } 
} 

回答

3

使用Directory.GetDirectories获得所有子目录的路径,然后使用Directory.GetCreationTime得到你需要的信息。然后,您可以对它们进行排序并采用符合条件的最小值。

+0

你会看我的编辑,我将如何选择最近修改的目录? – 2015-04-01 15:49:20

+0

尝试在该'var direcetories'行的末尾添加'.First()',以获取结果序列中的第一个元素。这会给你第一个创建的目录。如果您想要创建最后一个目录,请使用.Last()。 – GWLlosa 2015-04-01 15:51:30

相关问题