【问题标题】:How to list and manipulate windows files using C only?如何仅使用 C 列出和操作 Windows 文件?
【发布时间】:2011-06-19 18:55:51
【问题描述】:

我正在尝试构建一个程序来将一堆文件重命名为特定格式。问题是,我想不出使用 C(使用 Visual C++ 2010)查找、列出或操作 Windows 文件的最佳方法。

我可以使用 FindFirstFile() 在 C++ 中完成此操作,但我试图将自己限制为仅使用 C,因此我正在寻找另一种解决方案,它也将更加兼容。

谢谢。

【问题讨论】:

  • FindFirstFile() 是 C 函数,而不是仅 C++ 的函数。但它在 C 中没有标准化,也许这就是你的意思?
  • 您可以使用system() 做任何事情,即stdlib.h。但我几乎不会只称它为 C。
  • 也许您可以使用 Windows PowerShell 执行批量重命名。编辑器和脚本功能还不错。前段时间,我写了一个 Powershellscript 来重命名很多文件。
  • 有一大堆工具可以进行重命名。只是我宁愿自己做这个来练习我的 C 编程:)

标签: c windows winapi file rename


【解决方案1】:

首先,FindFirstFile() 不是 C++ 函数;它是一个 Windows 函数,在 Windows 上也可以在 C 中使用(但在其他操作系统上根本不可用)

如果您想要一个可移植的解决方案,您可以使用 glib 库的 directory functions 以可移植的方式列出目录。 glib 中也有用于通配符(即处理通配符)的函数。

【讨论】:

  • 您认为他为什么需要便携式解决方案?为什么这么多 C/C++ 答案中都提到了可移植性?
  • 他说“仅在 ​​C 中”,这取决于 OP 的意图,暗示可移植性。这就是为什么我提供了两个答案 - 要么使用 FindFirstFile(),它仅在 Windows 中的 C 上可用,要么使用 glib,它可以移植到其他操作系统。当然,没有真正的纯 C 目录列表函数,但 glib 是尽可能接近的。
猜你喜欢
  • 2018-09-12
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 2016-05-31
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
相关资源
最近更新 更多