使用通配符 C++ 从当前目录打开文件
是否可以使用通配符在 C/C++ 中打开给定目录中的文件?
从某种意义上说,如果我想从程序中给定的当前目录打开以“to(node_id)”结尾的文件。
示例:我需要打开文件名以“to4”结尾的文件。 所需的输出:它必须打开当前目录中文件名以“to4”结尾的所有文件。 如果文件 from0to4、from1to4、from2to4 和from3to4 存在于当前目录中,必须将它们打开。
如果在 C/C++ 中不可能,是否有其他编程语言允许这样做?
Is it possible to open files from a given directory in C/C++ using wildcard characters?
In the sense, If I want to open files that end with "to(node_id)" from a given current directory in my program.
Example : I need to open files whose filenames end with "to4".
Desired Output : It must open all the files in the current directory with filenames that end with "to4".
If files from0to4, from1to4, from2to4 & from3to4 exist in the current directory, they must be opened.
If it is not possible in C/C++, is there any other programming language which allows this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不在标准 C++ 中;您需要使用特定于操作系统的函数调用或文件系统库(如 Boost.Filesystem)。
在任何一种情况下,您都可以获取给定目录中的文件列表并迭代该列表并仅打开与您的参数匹配的文件。
Not in standard C++; you'll need to use either OS-specific function calls or a filesystem library like Boost.Filesystem.
In either case, you can get a list of files in a given directory and iterate over the list and open only the ones that match your parameters.
您可以使用 C 和 C++ 来完成。在 Windows 上,您可以使用 [
FindFirstFile
和FindNextFile
](http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx)。您的平台可能已经为您做到了。如果您运行的是 Unix,假设您运行以下命令:
shell 首先扩展通配符,然后使用扩展后的参数执行
myprog
,相当于在示例目录中。
您询问了其他语言,因此下面的代码是您如何使用 Perl 执行此操作:
例如,首先创建文件,然后运行打开它们的程序:
You can do it with C and C++. On Windows, you might use [
FindFirstFile
andFindNextFile
](http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx).Your platform may already do it for you. If you're running Unix, say you run the following command:
The shell first expands the wildcard and then executes
myprog
with the expanded arguments, equivalent toin your example directory.
You asked about other languages, so the code below is how you might do it with Perl:
For example, first create the files and then run a program that opens them: