dotnetfotdarvin Ответов: 2

Переместите файлы из одной папки в другую, где дата создания файлов находится между 2 датами


Привет,

Я хотел бы разработать приложение с использованием vb.net чтобы переместить файлы из одной папки в другую, где создана дата создания файлов между 2 датами.

например, если бы я не должен был перенести 01/09/2016 на 31/09/2016. Что-то вроде того.

Возможно ли это по диапазону дат?

Спасибо,
Дарвин

Что я уже пробовал:

Dim sourcepath As String = TextBox1. Text
Dim DestPath As String = TextBox2. Text
Dim datefrom As String = TextBox3. Text
Dim dateto As String = TextBox4. Text



Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
Системы.ИО.Каталог.CreateDirectory(DestPath)
Конец Подводной Лодки
Конец Класса

Karthik_Mahalingam

Вы только что объявили переменные.

[no name]

Посмотрите на класс File и посмотрите, может ли быть какой-то метод, который может вам помочь. Кроме этого, вы на самом деле ничего не пробовали, только спрашивали, возможно ли это. Да, это возможно. Вот вам и ответ.

2 Ответов

Рейтинг:
2

OriginalGriff

Да, это возможно - вы можете использовать DirectoryInfo:

DateTime startDate = DateTime.Now.AddMonths(-1);
DateTime endDate = DateTime.Now;
DirectoryInfo di = new DirectoryInfo(@"D:\Temp");
FileInfo[] files = di.GetFiles();
List<string> toMove = files.Where(fi => fi.CreationTime >= startDate && fi.CreationTime <= endDate)
                           .Select(fi => fi.FullName)
                           .ToList();
foreach (string file in toMove)
    {
    // Move the file
    ...
    }


Рейтинг:
2

Garth J Lancaster

конечно - то, что вам нужно, это что-то вроде

DirectoryInfo DirInfo = new DirectoryInfo(sourcepath);

Dim datePattern As String = "dd/MM/yyyy"
Dim dateFrom  As Date = Date.Parse(datefrom, datePattern, Nothing)
Dim dateTo As Date = Date.Parse(dateTo, datePattern, Nothing)

// LINQ query for files between dateFrom & dateTo
var files = from file in DirInfo.EnumerateFiles()
where file.CreationTimeUtc >= dateFrom &
file.CreationTimeUtc <= dateTo                       
select file;


Чтобы получить список совпадающих файлов в исходном пути - вам нужно будет решить, хотите ли вы сравнить измененную дату, созданную дату и т. д., И в приведенном выше нет обработки ошибок .. тогда вы можете

foreach (var file in files)
{
// do something with 'file' like copy it to DestPath 
}