2015-04-01 138 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

相關問題