我正在使用opendir函数来检查目录是否存在.问题是我在一个巨大的循环中使用它,它正在膨胀我的应用程序使用的ram.
检查C中是否存在目录的最佳(最快)方法是什么?如果不存在,创建它的最佳(最快)方法是什么?
我想使用opendir()仅列出特定文件夹中的文件夹(即/ www/site /).我想从列表中排除文件以及'.' 以及出现在linux文件夹列表中的'..'文件夹.我该怎么做呢?
我通过命令行输入接受路径.
当我做
dir=opendir(args[1]);
Run Code Online (Sandbox Code Playgroud)
它没有进入循环......即dir==null......
如何将命令行输入传递给dir指针?
void main(int c,char **args)
{
DIR *dir;
struct dirent *dent;
char buffer[50];
strcpy(buffer, args[1]);
dir = opendir(buffer); //this part
if(dir!=NULL)
{
while((dent=readdir(dir))!=NULL)
printf(dent->d_name);
}
close(dir);
}
./a.out /root/TEST is used to run the program..
./a.out --> to execute the program
/root/TEST --> input by the user i.e valid path
Run Code Online (Sandbox Code Playgroud) 我使用以下PHP代码列出当前目录下的所有文件和文件夹:
<?php
$dirname = ".";
$dir = opendir($dirname);
while(false != ($file = readdir($dir)))
{
if(($file != ".") and ($file != "..") and ($file != "index.php"))
{
echo("<a href='$file'>$file</a> <br />");
}
}
?>
Run Code Online (Sandbox Code Playgroud)
问题是列表不是按字母顺序排序的(也许它按创建日期排序?我不确定).
如何确保按字母顺序排序?
opendir MYDIR, "$dir";
my @FILES = readdir MYDIR;
closedir MYDIR;
Run Code Online (Sandbox Code Playgroud)
似乎99.9%的时间数组中前两个条目总是"."和"..".如果不是这样,脚本中的后来逻辑就会出现问题.我遇到了以后出现目录条目的情况.这是否表明文件系统已损坏或其他?opendir返回的是否有已知的顺序?
我正在制作一个在Linux shell中运行的程序,并接受一个参数(一个目录),并显示目录中的所有文件及其类型.
输出应该是这样的:
<< ./Program testDirectory
Dir directory1
lnk linkprogram.c
reg file.txt
Run Code Online (Sandbox Code Playgroud)
如果没有参数,则使用当前目录.这是我的代码:
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>
int main(int argc, char *argv[])
{
struct stat info;
DIR *dirp;
struct dirent* dent;
//If no args
if (argc == 1)
{
argv[1] = ".";
dirp = opendir(argv[1]); // specify directory here: "." is the "current directory"
do
{
dent = readdir(dirp);
if (dent)
{
printf("%c ", dent->d_type);
printf("%s \n", dent->d_name);
/* if (!stat(dent->d_name, &info))
{
//printf("%u bytes\n", (unsigned int)info.st_size);
}*/ …Run Code Online (Sandbox Code Playgroud) 应该怎么做才能使用PHP从文件夹/目录中获取图像的标题(例如abc.jpg)并将它们存储在数组中.
例如:
a[0] = 'ac.jpg'
a[1] = 'zxy.gif'
Run Code Online (Sandbox Code Playgroud)
等等
我将在幻灯片放映中使用该数组.
我使用opendir()打开一个目录,然后使用readdir()和lstat()来获取该目录中每个文件的统计信息.在这个联机帮助页之后,我编写了代码,在该代码下无法正常工作.它列出了当前目录中的所有文件,但是当文件是常规文件,符号链接或目录时,它不会打印出来.
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
void main(){
char* folder="."; //folder to open
DIR* dir_p;
struct dirent* dir_element;
struct stat file_info;
// open directory
dir_p=opendir(folder);
// show some info for each file in given directory
while(dir_element = readdir(dir_p)){
lstat(dir_element->d_name, &file_info); //getting a file stats
puts(dir_element->d_name); // show current filename
printf("file mode: %d\n", file_info.st_mode);
// print what kind of file we are dealing with
if (file_info.st_mode == S_IFDIR) puts("|| directory");
if (file_info.st_mode == S_IFREG) puts("|| regular …Run Code Online (Sandbox Code Playgroud) 我有一个文件名logspath.txt,它包含在机器上的logs目录路径中.每行一个目录.虽然该目录存在,但Perl说它没有.
#!/usr/bin/perl -w
open FILE,"logspath.txt" or die $!;
while (<FILE>){
print $_;
opendir ($DIR,chomp($_)) or die $!;
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,我得到:
/home/amosa/
No such file or directory at archive.pl line 6, <FILE> line 1.
Run Code Online (Sandbox Code Playgroud)
列出目录:
~$ ls -l /home/amosa/
total 6
drwxr-xr-x 11 amosa prodapp 1024 Mar 2 12:49 deploy
drwxr-xr-x 2 amosa prodapp 512 Mar 2 12:39 lib
-rw-r--r-- 1 amosa prodapp 787 Mar 2 11:02 s
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我的 php 文件在这里:
D:/Appserv/www/x/y/file.php
我想从这个文件夹加载东西:
E:/foldie
我不知道哪条路会带我到那里。
$somePath="HELP ME HERE!!!!"
$dir=opendir($somePath);
//looping through filenames
while (false !== ($file = readdir($dir))) {
echo "$file\n";
}
Run Code Online (Sandbox Code Playgroud)