假设我想写ls或dir.如何获取给定目录中的文件列表?相当于.NET的Directory.GetFiles和其他信息.
不确定字符串语法,但是:
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
Run Code Online (Sandbox Code Playgroud) 我不确定C是否可以这样做,但我希望我可以创建一个程序来查看目录,并打印出目录的所有内容以及每个文件的文件大小.就像在我希望它看起来像这样(可能):
filename.txt - 300个字节
filename2.txt - 400个字节
filename3.txt - 500个字节
等等.
到目前为止,我创建了一个程序,可以打开一个文件,它将打印字节,但它不读取整个目录,我必须具体说明我想要读取的文件..(这不是我的意思想).
这是我到目前为止:
#include <stdio.h>
int main(){
FILE *fp; // file pointer
long fileSize;
int size;
// opens specified file and reads
fp = fopen( "importantcommands.txt", "rw" );
if( fp == NULL ){
printf( "Opening file error\n" );
return 0;
}
// uses fileLength function and prints here
size = fileLength(fp);
printf( "\n Size of file: %d bytes", size );
fclose(fp);
return 0;
}
int fileLength( FILE *f ){
int …Run Code Online (Sandbox Code Playgroud) 我习惯用以下指令打开一个文件:
ifstream file ("somefile.txt"); //that means that I know the name of my file
Run Code Online (Sandbox Code Playgroud)
现在我有一个大目录,里面有很多文件,我的程序应该一一打开所有这些文件。
我怎样才能做到这一点?
我正在尝试“按顺序”在目录中获取文件名。我尝试使用 c++ std::filesystem::directory_iterator 来这样做。如https://en.cppreference.com/w/cpp/filesystem/directory_iterator 中所述,它提供目录中的所有文件名,不包括“.”。和“..”运算符,但不按顺序。
请帮助我,提前致谢。
这是我使用的简单代码
#include <iostream>
#include <string>
#include <experimental/filesystem>
#include <vector>
int main
{
// path to cereal folder
std::string path_to_cereal_folder = "/home/ros2/Documents";
for (auto& entry : std::experimental::filesystem::directory_iterator(path_to_cereal_folder) )
{
std::cout << entry.path() << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我在d:drive中创建了一个名为abc的文本文件.我无法打开它.请告诉我怎么做.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
clrscr();
fp = fopen("D:/abc.txt","r");
if(fp == NULL)
{
printf("\nCannot open");
getch();
exit(1);
}
fclose(fp);
getch();
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为"BaseFile"的目录,在这个目录中,我有几个目录名为"Dir1","Dir2","Dir3"等,
在这些子目录中,我有我需要通过代码列出的文件列表.有人可以给我一些如何做到这一点的提示吗?
我需要在Windows和Linux平台上这样做.
我是C++编程的新手,我需要这样做:我有一个代码,它接收两个图像的路径并输出一个数字(使用opencv的直方图相似性).
我需要使用此功能,以便它不会给它第二个图像文件,而是从文件夹加载图像,重复操作的次数与图像在此文件夹中的次数一样,并存储结果.
如果你可以指出我可以使用的功能或某个地方我可以学到这些我会非常感激它,我的知识非常有限.
我没有任何限制,但我也非常迷失.我想我需要放置我已经拥有的函数并为agv [i]更改argv [1].但是如何从目录中调用文件?我应该在txt中保存文件的所有名称吗?
我想访问一个目录,并解析其中的所有文件.为此,我在这篇文章中找到了一种方法,但显然它是针对C而不是C++(告诉我,如果我错了).
我正在使用Qt,我想知道使用哪种类似的方式来运行我的目录的每个文件.
所以我做了这个:
#include <iostream>
#include <string>
using namespace std;
int main()
{
while(true)
{
string x;
string y;
string an1[3] = {"quit","exit","leave"};
double ver = 0.1;
cout << "basic0.1% ";
cin >> x;
if (x == "upgrade")
{
system("yay -Syyu");
}
else if (x == "install")
{
cout << "What do you want to install?" << "\n";
cin >> y;
system(("sudo yay -S " + y).c_str());
}
else if (x == "version")
{
cout << "version: " << ver << "\n"; …Run Code Online (Sandbox Code Playgroud) 我刚刚开始研究 C++,并且一直在读一本书,但只读了其中的几章。
我认为打印一个目录是一个很好的练习。当我查找时,我看到这个漂亮的环路正在驾驶for火车。
for (const auto & entry : fs::directory_iterator(path))
std::cout << entry.path() << std::endl;
Run Code Online (Sandbox Code Playgroud)
我的下一个逻辑步骤是将这些值存储在向量或数组中。
在过去的三个小时里,我一直无法弄清楚。什么是entry?它是一个常数吗?是字符串吗?是什么阻止我将它放入向量中?我无法让这段代码运行。
我对这个基本问题感到抱歉,我只需要一些概念上的澄清。
这是我的代码,push_back()不接受常量,并且无法将常量转换为字符串。我缺少什么?
auto filepath()
{
std::vector <string> lis;
std::string path = "C:/Users/Derek Comeau/3D Objects";
for (const auto& entry : filesystem::directory_iterator(path)) {
const string paths = entry.path();
lis.push_back(paths);
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在open()不知道全名的情况下打开文件?
linux shell 提供了一种简单的方法来做到这一点(在某种意义上),通过接受正则表达式作为输入。
例如,如果您有一个包含文件的文件夹:
a.out file1 file2 file3 file4 file.txt test
Run Code Online (Sandbox Code Playgroud)
并且您只想列出带有前缀的文件,file您可以这样做:
$ ls file*
file1 file2 file3 file4 file.txt
Run Code Online (Sandbox Code Playgroud)
或者:
$ ls file[1-9]
file1 file2 file3 file4
Run Code Online (Sandbox Code Playgroud)
仅列出编号文件等...
每当我的程序启动时,我都需要打开同一个文件。
问题是,它需要打开的文件格式为: X*Y,这意味着它以 an 开头并以X结尾Y,但它可以是介于两者之间的任何内容。
例如,它可能是X-Toshiba_12.45y9-Y,也可能是X-Dell-5.44s-Y。
我希望能够打开这个文件而不必考虑模型。
该文件可能与该文件夹中的一些其他文件一起驻留,但X前缀和Y后缀是唯一的。
我可以迭代该文件夹中的文件并尝试通过匹配字符串来查找我的文件,但我宁愿避免它。
有没有办法以open()某种方式提供正则表达式?