【问题标题】:Find and copy the latest file查找并复制最新文件
【发布时间】:2016-03-16 19:39:19
【问题描述】:

我们的程序会将 PDF 保存到网络文件夹。然后,我会将 PDF 复制到 Web 服务器。当用户多次保存/归档同一份报告时,就会出现问题。

例子:

  • DAGH4 (002).PDF - 修改日期 = 2016 年 3 月 16 日上午 10:10
  • DAGH4 (001).PDF - 修改日期 = 2016 年 3 月 16 日上午 9:00
  • DAGH4.PDF - 修改日期 = 2016 年 3 月 16 日上午 8:00
  • DANYL (001).PDF - 修改日期 = 2016 年 3 月 16 日上午 10:50
  • DANYL.PDF - 修改日期 = 2016 年 3 月 16 日上午 9:50

有没有办法复制最新版本?我只想复制 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 日上午 10:10 的 DAGH4 (002).PDF

这可能使用 VB .NET 吗?

【问题讨论】:

  • 为什么有这么多标签?您是在 PowerShell、批处理文件还是 vbscript 中执行此操作?请选择一个...
  • 序列号是否始终位于 .pdf 扩展名之前的最后一部分并格式化为 (001)?
  • 是的。如图所示。

标签: vb.net vbscript xcopy


【解决方案1】:

要查找每个文件的最新副本,您可以使用 LINQ 按序列号分组,按修改日期排序,然后为每个组选择第一项。请注意,这假设您的“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 将拥有每个序列号的最新(基于修改日期)文件的完整路径/名称。

【讨论】:

  • 我没用过From。应该如何声明?
  • @crystalnoob 嗯,您使用的是什么版本的 Visual Studio 和/或 .NET? LINQ 是在 VS2008 / .NET 3.5 中添加的。您可能需要添加一些引用和/或导入。
  • @crystalnoob 太糟糕了,对不起。至少它不是VB6! :-)
  • 刚刚转换到2008没有错误。显示 Order By 存在问题。说不宣布。整行“Order By SerialNumber Ascending, f.LastWriteTime Descending”表示应使用逗号或 )。
  • @crystalnoob 我预计查询的其他部分会出现问题。 DirectoryInfo.EnumerateFiles 可能是 .NET 4 的东西,所以您可以改用 GetFiles。此外,Regex 类可能需要 Imports System.Text.RegularExpressions。我认为Order By 会得到支持,所以我希望前一行实际上有一个错误导致该错误。也许添加Imports System.Linq,我想检查System.Core.dll是否被引用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
相关资源
最近更新 更多