从文件夹中获取最新 "x.png"
Get latest "x.png" from a folder
我的程序中有一个 "take a screenshot" 功能。我正在截取屏幕截图并使用以下代码保存它:
Bmp.Save(dir & "\MyApp\Screenshot" & random & ".png")
目录是文档。随机数是这个
random = CInt(Math.Ceiling(Rnd() * 99999)) + 1
但我不想这样保存。我想按顺序保存。我想检查文件夹,获取最新名称并向其添加 +1。 Like 如果最新的是Screenshot-17.png,保存为Screenshot-18.png.
我在想一个子字符串,但我不知道如何从文件夹中获取最新的 png 文件。
完整代码在这里:
Dim dir As String
dir = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim random As Integer
random = CInt(Math.Ceiling(Rnd() * 99999)) + 1
Dim pathh As String
pathh = dir & "\MyApp\"
If (Not System.IO.Directory.Exists(pathh)) Then
System.IO.Directory.CreateDirectory(pathh)
End If
Dim Bmp As New Bitmap(WebControl1.ClientRectangle.Width, WebControl1.ClientRectangle.Height)
Dim gBmp As Graphics = Graphics.FromImage(Bmp)
gBmp.CopyFromScreen(WebControl1.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(WebControl1.Width, WebControl1.Height))
Bmp.Save(dir & "\MyApp\Screenshot" & random & ".png")
NotifyIcon1.ShowBalloonTip(1500, "Click here to see your screenshot!", "Saved to Documents/MyApp/Screenshot" & random & ".png!", ToolTipIcon.Info)
baloon = pathh & "Screenshot" & random & ".png"
这种情况下更好的选择是:
Dim newFileNMame As String = (Date.Today.ToString("yyyy-MM-dd") & "-" & TimeOfDay.ToString("HH-mm-ss"))
Bmp.Save(dir & "\MyApp\Screenshot\" & newFileNMame & ".png")
否则您将使用以下代码获取最后一个文件名:
Dim x As DirectoryInfo = New DirectoryInfo("D:\TestFolder")
Dim lastfileName = x.GetFileSystemInfos().OrderByDescending(Function(f) f.CreationTime).FirstOrDefault().Name
你可以试试这个:
Dim f As New System.IO.DirectoryInfo("yourFolderLocation")
Dim files = f.GetFiles.ToList
Dim latest = (From file In files Select file Order By file.CreationTime Ascending).FirstOrDefault
我的程序中有一个 "take a screenshot" 功能。我正在截取屏幕截图并使用以下代码保存它:
Bmp.Save(dir & "\MyApp\Screenshot" & random & ".png")
目录是文档。随机数是这个
random = CInt(Math.Ceiling(Rnd() * 99999)) + 1
但我不想这样保存。我想按顺序保存。我想检查文件夹,获取最新名称并向其添加 +1。 Like 如果最新的是Screenshot-17.png,保存为Screenshot-18.png.
我在想一个子字符串,但我不知道如何从文件夹中获取最新的 png 文件。
完整代码在这里:
Dim dir As String
dir = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim random As Integer
random = CInt(Math.Ceiling(Rnd() * 99999)) + 1
Dim pathh As String
pathh = dir & "\MyApp\"
If (Not System.IO.Directory.Exists(pathh)) Then
System.IO.Directory.CreateDirectory(pathh)
End If
Dim Bmp As New Bitmap(WebControl1.ClientRectangle.Width, WebControl1.ClientRectangle.Height)
Dim gBmp As Graphics = Graphics.FromImage(Bmp)
gBmp.CopyFromScreen(WebControl1.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(WebControl1.Width, WebControl1.Height))
Bmp.Save(dir & "\MyApp\Screenshot" & random & ".png")
NotifyIcon1.ShowBalloonTip(1500, "Click here to see your screenshot!", "Saved to Documents/MyApp/Screenshot" & random & ".png!", ToolTipIcon.Info)
baloon = pathh & "Screenshot" & random & ".png"
这种情况下更好的选择是:
Dim newFileNMame As String = (Date.Today.ToString("yyyy-MM-dd") & "-" & TimeOfDay.ToString("HH-mm-ss"))
Bmp.Save(dir & "\MyApp\Screenshot\" & newFileNMame & ".png")
否则您将使用以下代码获取最后一个文件名:
Dim x As DirectoryInfo = New DirectoryInfo("D:\TestFolder")
Dim lastfileName = x.GetFileSystemInfos().OrderByDescending(Function(f) f.CreationTime).FirstOrDefault().Name
你可以试试这个:
Dim f As New System.IO.DirectoryInfo("yourFolderLocation")
Dim files = f.GetFiles.ToList
Dim latest = (From file In files Select file Order By file.CreationTime Ascending).FirstOrDefault