哪位高手有从一个文件夹下面读取所有文件的个数和最后修改信息,然后把时间最早的几个文件(即保留一个修改时间最新的文件)转移到另外一个文件内,然后判断如果转移的文件已经存在,然后按照一定规则重新命名的方法?在下急等用,非常感谢,在线等!

解决方案 »

  1.   

    研究一下IO里面的Files类完全解决 
      

  2.   

    File相关类,FileInfo等,看帮助
      

  3.   


    这是根据文件名排序的方法
    /// <summary> 
    /// 快速排序算法 
    /// </summary> 
    /// 快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法 
    /// <param name="arr">划分的数组</param> 
    /// <param name="low">数组低端上标</param> 
    /// <param name="high">数组高端下标</param> 
    /// <returns></returns> 
    static int Partition(FileInfo[] arr, int low, int high) 

    //进行一趟快速排序,返回中心轴记录位置 
    // arr[0] = arr[low]; 
    FileInfo pivot = arr[low];//把中心轴置于arr[0] 
    while (low < high) 

    while (low < high && arr[high].CreationTime <= pivot.CreationTime) 
    --high; 
    //将比中心轴记录小的移到低端 
    Swap(ref arr[high], ref arr[low]); 
    while (low < high && arr[low].CreationTime >= pivot.CreationTime) 
    ++low; 
    Swap(ref arr[high], ref arr[low]); 
    //将比中心轴记录大的移到高端 

    arr[low] = pivot; //中心轴移到正确位置 
    return low; //返回中心轴位置 

    static void Swap(ref FileInfo i, ref FileInfo j) 

    FileInfo t; 
    t = i; 
    i = j; 
    j = t; 

    /// <summary> 
    /// 快速排序算法 
    /// </summary> 
    /// 快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法 
    /// <param name="arr">划分的数组</param> 
    /// <param name="low">数组低端上标</param> 
    /// <param name="high">数组高端下标</param> 
    public static void QuickSort(FileInfo[] arr, int low, int high) 

    if (low <= high - 1)//当 arr[low,high]为空或只一个记录无需排序 

    int pivot = Partition(arr, low, high); 
    QuickSort(arr, low, pivot - 1); 
    QuickSort(arr, pivot + 1, high); 

    } } 
      

  4.   

    TCHAR path[260] = _T("D:\\tmp"); TCHAR findFilter[260];
    _tcscpy(findFilter, path);
    _tcscat(findFilter, _T("\\*")); WIN32_FIND_DATA fd;
    HANDLE hfind = FindFirstFile(findFilter, &fd);
    bool bFlag = true; while (hfind != INVALID_HANDLE_VALUE && bFlag)
    {
    if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0 //not dictory
    && _tcscmp(fd.cFileName, _T(".")) != 0
    && _tcscmp(fd.cFileName, _T("..")) != 0)
    {
    // 把文件名和上次修改时间保存在一个list等容器里
    // fd.cFileName, fd.ftLastWriteTime
    }
    FindNextFile(hfind, &fd);
    } if (hfind != INVALID_HANDLE_VALUE)
    {
    FindClose(hfind);
    hfind = NULL;
    }
    // 对保存的数据按修改时间排序,找到准备操作的文件。
    // 然后用Movifile API把文件移动到其他目录 BOOL WINAPI MoveFile(
      __in          LPCTSTR lpExistingFileName,
      __in          LPCTSTR lpNewFileName
      

  5.   

    File.SetCreationTime(f, createDataTime);
    File.SetLastWriteTime(f, modifyDataTime);
    File.SetLastAccessTime(f, visiteDataTime);
      

  6.   

    IO下的File相关类,FileInfo,遍历操作!