This is in class file
Imports Microsoft.VisualBasic
Imports System.IO
Imports System.Collections.Generic
Public Class FileSrch
'' File Search Options
Public Enum FileSearchOptions
YearFirst
MonthFirst
DateinExtension
NormalFiles
End Enum
Public Shared Function GetSearchcriteria(ByVal DatetoSearchwith As Date, ByVal Filename As String, ByVal FileExtension As String, ByVal SearchOptions As FileSearchOptions)
Select Case SearchOptions
Case FileSearchOptions.YearFirst
Return String.Format("{0}_{1:yyyyMMdd}{2}", Filename, DatetoSearchwith, FileExtension)
Exit Select
Case FileSearchOptions.MonthFirst
Return String.Format("{0}_{1:yyyyMMdd}{2}", Filename, DatetoSearchwith, FileExtension)
Exit Select
Case FileSearchOptions.NormalFiles
Return String.Format(Filename + FileExtension)
Case FileSearchOptions.DateinExtension
Dim ExtensionFormat As String = (Convert.ToInt32(DatetoSearchwith.ToString("mm")).ToString() & DatetoSearchwith.ToString("dd"))
'' Month in Double Digit
If DatetoSearchwith.Month > 9 Then
ExtensionFormat = (DatetoSearchwith.ToString("mmm")(0) & DatetoSearchwith.ToString("dd"))
End If
Return String.Format("{0}.{1}", Filename, ExtensionFormat)
Case Else
Return String.Format("{0}.{1}", Filename, FileExtension)
End Select
End Function
Public Shared Function GetFiles(ByVal RootDirectory As DirectoryInfo, ByVal Filename As String, ByVal FileExtension As String, ByVal DatetoSearchwith As Date) As List(Of FileInfo)
Dim FiFiles As New List(Of FileInfo)
For Each DateOption As FileSrch.FileSearchOptions In [Enum].GetValues(GetType(FileSrch.FileSearchOptions))
FiFiles.AddRange(RootDirectory.GetFiles(FileSrch.GetSearchcriteria(DatetoSearchwith, Filename, FileExtension, DateOption), SearchOption.AllDirectories))
Next
Return FiFiles
End Function
End Class
This in Button Click
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FileName As String
' Dim fileName As String = txtextension.Text.Trim().Substring(0, txtextension.Text.Trim().IndexOf("."))
If txtextension.Text.Contains("_") Then
FileName = txtextension.Text.Trim().Substring(0, txtextension.Text.Trim().IndexOf("_"))
Else
FileName = txtextension.Text.Trim().Substring(0, txtextension.Text.Trim().IndexOf("."))
End If
Dim extensionToSearch As String = Path.GetExtension(txtextension.Text)
'Dim Directory As String = Path.GetDirectoryName(txtpath.Text.Trim())
Dim Directory As New DirectoryInfo(txtpath.Text.Trim())
'Dim filess As String() = Directory.GetFiles(txtpath.Text, txtextension.Text, SearchOption.AllDirectories)
'For Each fiFile As String In filess
' Response.Write(fiFile & "</br>")
'Next
Dim SearchedFiles As List(Of FileInfo) = FileSrch.GetFiles(Directory, fileName, extensionToSearch, Now.Date())
'Dim searchedFiles As List(Of FileInfo) = GlobalStuff.GetFiles(directoryToSearch, "whateverfilename", extensionToSearch, DateTime.Now)
If (SearchedFiles IsNot Nothing AndAlso SearchedFiles.Count > 0) Then
For Each fi As FileInfo In SearchedFiles
Response.Write(fi.Name & "</br>")
Next
Else
Response.Write("No files found")
End If
End Sub
Now,we need to address the following things in that to complete req,
1) If I enter filename_mmddyyyy.txt it should fetch only files having current date in their name in mmddyyyy format.For eg. If I give test_mmddyyyy.txt in txtextension it should return only files with test_10222010.txt and not thee ones with yyyymmdd and all…Right now I am getting all the files created in the current date including the one with ordinary test.txt and also test_20101022.txt …….And the third thing filename.mdd everything is getting passed correctly but it is not fetching the file ..Again test,test_20101022.txt everything comes.It shouldn’t be like that it should only fetch files with .mdd (current date)….if we give so……Hope u got…
2) I implemented the normalfiles as u can see above.But in that there is one extra thing we need to address it is if I give ????.???,it should fetch only files like ajay.txt,siva.txt and so on…it should match exactly with the question mark .but what I am getting now is if I give ????.??? in text box I am getting files like nks.txt,nk.tt also…..all lesser files are coming …..? Should match exactly with letters also in extension.
Hope you got……If we address the above things then we are done.
And please help me in this final step..we are almost done…
In my above code i have two text boxes one for file path and other one for getting extension and also for gettting file names with diff search criteria.....What i do is i should implement file search which is like as mentioned below -
1) it should search for all files if i enter *.*,only jpg if *.jpg, and files like nks.txt if i enter ???.???.......
2) if i enter the filename alone without extn it should return me filenames that exist without extension in directories.
3) the final thing is the date in filename where my file will be like filename_mmddyyyy.txt or filename_yyyymmdd.txt or filename.mdd.In first case it should return only files with current date in mmddyyyy format and txt extn....like taht....last case is mdd in extn...where if i enter filename.123,it sould get me files with jan 23(23 currnt date) and for months greater than 9 it is N for nov ,D for dec and so on.But in m,ytext box i will enter only file.mdd only .and also filename_mmddyyyy.jpg like that....