Получить дату создания или дату изменения файла?
Я хочу получить дату создания, дату последнего изменения, другие детали, относящиеся к файлам, и добавить их в таблицу данных. В настоящее время я получаю информацию о файле с помощью 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