Получить дату создания или дату изменения файла?

Я хочу получить дату создания, дату последнего изменения, другие детали, относящиеся к файлам, и добавить их в таблицу данных. В настоящее время я получаю информацию о файле с помощью directory.getfiles, Вот что я получил так далеко:

Dim paths() As String = IO.Directory.GetFiles("mypath")

For Each sFile As String In paths
    Dim fileNameOnly As String = Path.GetFileNameWithoutExtension(sFile)
    gridview.Rows.Add(fileNameOnly)
Next

4 ответа

Решение

Вот так я бы взял как созданную дату, так и время последней записи.

For each sfile as datetime.tostring in paths
     Dim fileCreatedDate As DateTime = File.GetCreationTime(paths)
     Dim fileLastWrite as DateTime = File.GetLastWriteTime(path)
Next

Чтобы получить файлы между датами, попробуйте это..

Dim [date] As DateTime = firstdatevariable
While [date] <= seconddatevariable
     'add dates that are inbetween them
End While

Если вы используете DirectoryInfo Объект, чтобы получить список файлов, у вас будет доступ к большему количеству данных:

Dim di As DirectoryInfo = New DirectoryInfo("mypath")

Тогда ваш цикл будет выглядеть так:

For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
    Dim fileNameOnly As String = fi.Name
    Dim createDate as Date = fi.CreationTime
    <etc...>
Next

Смотрите это для полного описания FileInfo:

https://msdn.microsoft.com/en-us/library/system.io.fileinfo(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb

* Мой VB может быть ржавым

Я заимствую эту функцию. Это делает его действительно простым, заполняя эту информацию информацией, которой вы можете в дальнейшем манипулировать, если это необходимо.

gridview.DataSource = Fileinfo_To_DataTable("mypath")

 Private Function Fileinfo_To_DataTable(ByVal directory As String) As DataTable
        Try
            'Create a new data table
            Dim dt As DataTable = New DataTable
            'Add the following columns: Name. Length Last Write Time, Creation Time
            dt.Columns.Addrange({New DataColumn("Name"), New DataColumn("Length", GetType(Long)), New DataColumn("Last Write Time", GetType(Date)), New DataColumn("Creation Time", GetType(Date))})
            'Loop through each file in the directory
            For Each file As IO.FileInfo In New IO.DirectoryInfo(directory).GetFiles
                'Create a new row
                Dim dr As DataRow = dt.NewRow

                'Set the data
                dr(0) = file.Name
                dr(1) = file.Length
                dr(2) = file.LastWriteTime
                dr(3) = file.CreationTime

                'Add the row to the data table
                dt.Rows.Add(dr)
            Next

            'Return the data table
            Return dt
        Catch ex As Exception
            Console.WriteLine(ex.ToString)

           'Return nothing if something fails
            Return Nothing
        End Try
  End Function

Самым простым, на мой взгляд, было бы что-то вроде этого примера. Я здесь ищу файл с именем Symbols.csv в Моих документах

      Friend ReadOnly MyDocsFolder As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim SymbolsFile As String = Path.Combine(MyDocsFolder, "Symbols.csv")
Dim dt As Date = File.GetLastWriteTime(SymbolsFile)
Text = "Data last saved at:  " & dt.ToShortDateString
Другие вопросы по тегам