查找并复制最新文件
Find and copy the latest file
我们的程序将 PDF 保存到网络文件夹。然后我会将 PDF 复制到 Web 服务器。当用户 saves/archives 多次报告相同内容时就会出现问题。
示例:
- DAGH4 (002).PDF - 修改日期 = 3/16/2016 10:10 AM
- DAGH4 (001).PDF - 修改日期 = 3/16/2016 9:00 AM
- DAGH4.PDF - 修改日期 = 3/16/2016 8:00 AM
- DANYL (001).PDF - 修改日期 = 3/16/2016 10:50 AM
- DANYL.PDF - 修改日期 = 3/16/2016 9:50 AM
有什么方法可以复制最新版本吗?我只想复制 DAGH4 (002).PDF 和 DANYL (001).PDF。或者有没有办法重命名并保存最新版本?
另一个想法
我使用此代码检查文件是否存在,并允许用户单击缩略图打开关联的 PDF。
Dim pdf_path = Server.MapPath(String.Format("../Reports/{0}.pdf",
SerialNumber))
lblSerial.Visible = System.IO.File.Exists(pdf_path)
HyperLinkSerial.Visible = System.IO.File.Exists(pdf_path)
HyperLinkSerial.Text = "Inspection"
HyperLinkSerial.NavigateUrl = "../Reports/" & SerialNumber & ".PDF"
但是,我只需要找到并显示修改日期为 2016 年 3 月 16 日的 DAGH4 (002).PDF 10:10 AM
可以使用 VB .NET 吗?
要查找每个文件的最新副本,您可以使用 LINQ 按序列号分组,按修改日期排序,select 每组的第一项。请注意,这假设您的 "SerialNumber" 只是字母和数字(正则表达式匹配的内容):
Dim latest As IEnumerable(Of String) =
From f In New DirectoryInfo(Server.MapPath("../Reports")).EnumerateFiles("*.PDF")
Let serialNumber = Regex.Match(f.Name, "^\w+").Value
Order By serialNumber Ascending, f.LastWriteTime Descending
Group By serialNumber Into Group
Select Group.First().f.FullName
latest
将拥有每个序列号的最新(基于修改日期)文件的完整 path/name。
我们的程序将 PDF 保存到网络文件夹。然后我会将 PDF 复制到 Web 服务器。当用户 saves/archives 多次报告相同内容时就会出现问题。
示例:
- DAGH4 (002).PDF - 修改日期 = 3/16/2016 10:10 AM
- DAGH4 (001).PDF - 修改日期 = 3/16/2016 9:00 AM
- DAGH4.PDF - 修改日期 = 3/16/2016 8:00 AM
- DANYL (001).PDF - 修改日期 = 3/16/2016 10:50 AM
- DANYL.PDF - 修改日期 = 3/16/2016 9:50 AM
有什么方法可以复制最新版本吗?我只想复制 DAGH4 (002).PDF 和 DANYL (001).PDF。或者有没有办法重命名并保存最新版本?
另一个想法
我使用此代码检查文件是否存在,并允许用户单击缩略图打开关联的 PDF。
Dim pdf_path = Server.MapPath(String.Format("../Reports/{0}.pdf",
SerialNumber))
lblSerial.Visible = System.IO.File.Exists(pdf_path)
HyperLinkSerial.Visible = System.IO.File.Exists(pdf_path)
HyperLinkSerial.Text = "Inspection"
HyperLinkSerial.NavigateUrl = "../Reports/" & SerialNumber & ".PDF"
但是,我只需要找到并显示修改日期为 2016 年 3 月 16 日的 DAGH4 (002).PDF 10:10 AM
可以使用 VB .NET 吗?
要查找每个文件的最新副本,您可以使用 LINQ 按序列号分组,按修改日期排序,select 每组的第一项。请注意,这假设您的 "SerialNumber" 只是字母和数字(正则表达式匹配的内容):
Dim latest As IEnumerable(Of String) =
From f In New DirectoryInfo(Server.MapPath("../Reports")).EnumerateFiles("*.PDF")
Let serialNumber = Regex.Match(f.Name, "^\w+").Value
Order By serialNumber Ascending, f.LastWriteTime Descending
Group By serialNumber Into Group
Select Group.First().f.FullName
latest
将拥有每个序列号的最新(基于修改日期)文件的完整 path/name。