0

这让我不知所措,所以我们开始吧:

我开发了一个脚本,有一次,我使用 AutoIt 将特定的视频文件选择拖到第三方应用程序中。这些文件必须在资源管理器窗口中以特定顺序列出,以便在将它们导入第三方应用程序时,它们以相同的顺序导入(脚本在这一点上继续运行,此顺序至关重要)保存)。

我尝试将文件重命名为 0 - 9(按我想要的顺序)并按文件名排序......虽然这可行,但文件在导入时必须具有其原始名称;资源管理器(以及我尝试过的每一个替换)一旦重新命名它们就会重新排序它们,从而破坏整个过程。我无法弄清楚如何在资源管理器或任何其他文件管理器中禁用这种自动排序(在特别重命名之后)。

显而易见的下一个试验是向文件添加某种属性或标签,然后按所选属性/标签排序,但是从 Java、AutoIt 或 vbscript 完成这个简单的任务似乎在编程上是不可能的......

总结:我有一些视频文件会自动从资源管理器窗口拖到第三方应用程序;它们在资源管理器窗口中出现的顺序(在被拖动之前)是至关重要的,并且它们在被拖动时必须具有正确的文件名;如何以自定义(用户定义)顺序将它们列在资源管理器中?

编辑:我忘记了一个关键部分:

  • 文件路径与此第三方应用程序相关联。
  • 在同一文件夹中还有 1000 多个其他视频文件

因此无法从其他文件夹复制视频;它们必须来自此主文件夹以保持参照完整性。

4

2 回答 2

0

感谢@Hovercraft Full Of Eels 和@Hassan 为我指明了正确的方向!

该解决方案有点破解,但它始终如一地工作并且易于实现......它基于操纵目标文件的“修改日期”属性,并且适用于您理想地想要运行的脚本连续几天没有修改:

1. 选择一个遥远的未来作为您的“开始日期”(我使用 2068 年) - 您也可以选择明天(如当前日期后的第二天),只要您从中拖动文件的文件管理器允许您将“今天”指定为过滤日期(即 Windows 资源管理器)。我最终使用了 Xplorer2,它没有类似的功能,所以我选择了一个脚本永远不会运行的日期。

2. 更改文件上的“修改日期”,使日期按照您需要文件的顺序排列;从开始日期开始- 在任何脚本语言中都应该非常简单;在 AutoIT 中,我使用 FileGetTime() 读取原始日期,将它们存储在一个数组中(以便稍后重置),然后使用函数 FileSetTime() 进行更改。

3. 使用您的开始日期过滤文件,并对它们进行排序- 在 Windows 资源管理器(Win 7)中,您可以使用搜索栏中的“System.DateModified:>today”,然后在右键菜单中按修改日期排序。在 Xplorer 中,我能够设置并保存一个过滤器,该过滤器过滤掉在我的开始日期前一天或更早修改的所有文件。

4. 为您的文件重置修改日期属性- 如果您正在编写一个将运行多次的脚本,您将需要重置您更改的日期,以便在后续执行期间这些文件不会与您的目标文件一起出现。

给你!我目前正在研究替代方案(使用 Windows API 进行拖放),如果我设法让它工作,我将发布一个新答案!

于 2013-09-20T17:56:49.497 回答
0

如何获取文件名列表(以任何顺序),然​​后在您的脚本中以任何需要的方式重新排序它们,然后将该重新排序的列表传递给第三方应用程序?

于 2013-09-16T22:10:01.907 回答