c语言如何获得文件当前路径

c语言如何获得文件当前路径,第1张

C语言里

在main函数的第二个参数里面,

保存着当前程序运行的目录

也就是argv[0]

main( int argc, char argv[])

{

printf("%s ", argv[0] );

}

就是文件当前所在位置

不过需要注意的一点是

这个路径里面保存了当前文件的文件名

如果你只是需要路径的话还需要自己 *** 作一下

main(int a,char c[])

{

char s[100];

int i;

//把路径保存到字符串s里

strcpy(s,c[0]);

for(i=strlen(s); i>0 ; i--)

if( s[i] == '\\')

{

s[i]='\0';

break;

}

//找到最后一个 \ 并删除之后的内容

//最后输出的s,就是当前文件的路径了

puts(s);

}

find -type f -name txt

在当前目录下查找后缀为txt的所有文件(会搜索子目录)。

其中,点号表示当前目录;-type f 表示查找的为文件。

python有个魔术变量__file__

#(前后各两个下划线)。这个变量就是当前文件的绝对路径。

再利用Pyhon自带的os模块中的path模块可以处理路径,分理出目录和文件名。以下是示例代码。

import os

folder,filename=ospathsplit(__file__)

print(folder,filename)不明白可追问。

for %%a in (c d e f) do (

for /f %%b in ('dir /s /b "%%a:\aaaexe"') do set a=%%~dpb

)

echo %a%

::%a% 这个变量就是aaaexe所在目录。

如何获取指定目录包含的文件和子目录 DirectoryInfo GetFiles() 获取目录中(不包含子目录)的文件 返回类型为FileInfo[] 支持通配符查找 DirectoryInfo GetDirectories() 获取目录(不包含子目录)的子目录 返回类型为DirectoryInfo[] 支持通配符查找 DirectoryInfo GetFileSystemInfos() 获取指定目录下(不包含子目录)的文件和子目录 返回类型为FileSystemInfo[] 支持通配符查找 如何获取指定文件的基本信息 FileInfo Exists 获取指定文件是否存在 FileInfo Name FileInfo Extensioin 获取文件的名称和扩展名 FileInfo FullName 获取文件的全限定名称(完整路径) FileInfo Directory 获取文件所在目录 返回类型为DirectoryInfo FileInfo DirectoryName 获取文件所在目录的路径(完整路径) FileInfo Length 获取文件的大小(字节数) FileInfo IsReadOnly 获取文件是否只读 FileInfo Attributes 获取或设置指定文件的属性 返回类型为FileAttributes枚举 可以是多个值的组合 FileInfo CreationTime FileInfo LastAccessTime FileInfo LastWriteTime 分别用于获取文件的创建时间 访问时间 修改时间 遍历文件夹 文件夹是树形结构 遍历算法有 广度优先级和深度优先级 区别 广度首先查找同一层目录 深度首先遍历一条分支 有了这个区别 就可以确定链表的插入位置 即广度遍历插入点总在末尾 深度遍历插入点在首部 详细看代码 public static void searchFile(String path List<Object> resultList) { File file = new File(path); if (file isDirectory()) { LinkedList<File[]> levelLinked = new LinkedList<File[]>(); levelLinked add(file listFiles()); do { File[] childFiles = levelLinked remove( ); for (File cf : childFiles) { if (cf isDirectory()) { // 此处控制遍历的方向 levelLinked add(cf listFiles());// 广度 // levelLinked add( cf listFiles());//深度 } else { String fileName = cf getName();// 文件名 有后缀 String filePath = cf getAbsolutePath();// 绝对路径 String fileParent = cf getParent();// 上层路径 注意最后的 / // 比较算法 找到后放入集合 String[] sf = { fileName fileParent filePath }; resultList add(sf); } } } while (levelLinked size() > ); } } 此处加入一些API提供的工具类 希望有用 多后缀判断 如 java class js等 String[] hz = {java class js}; Arrays sort(hz);//下面的搜索需要排序 例如 class的顺序在java之前 如果不sort() class文件不会被查找 Arrays binarySearch(hz fn_);//fn_文件后缀 如果明确目录的层次结构简单 递归算法也是不错的选择 个人觉得 文件的搜索 应该单独起线程

//////////////////////// 采用递归的方式遍历 文件夹和子文件中的所有文件 public void FindFile(string dirPath) //参数dirPath为指定的目录 { //在指定目录及子目录下查找文件 在listBox 中列出子目录及文件 DirectoryInfo Dir=new DirectoryInfo(dirPath); try { foreach(DirectoryInfo d in Dir GetDirectories()//查找子目录 { FindFile(Dir+d ToString()+""); listBox Items Add(Dir+d ToString()+""); //listBox 中填加目录名 } foreach(FileInfo f in Dir GetFiles(" ")) //查找文件 { listBox Items Add(Dir+f ToString()); //listBox 中填加文件名 } } catch(Exception e) { MessageBox Show(e Message); }

}

用下面代码限制文件的类型 foreach(FileInfo f in Dir GetFiles(" ")) //查找文件

“ ”指要访问的文件的类型的扩展名 /////////////////////////////// 代码改成如下 会不会好一点

DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);

DirectoryInfo[] dirInfo = TheFolder GetDirectories(); //遍历文件夹 foreach(DirectoryInfo NextFolder in dirInfo) this listBox Items Add(NextFolder Name);

lishixinzhi/Article/program/net/201311/14311

string filePath =@"C: \Users\Administrator\Desktop\1\2";

DirectoryInfo dirInfo = new DirectoryInfo(filePath);

string currentDir = dirInfo Name; //获取当前文件所在目录名称

以上就是关于c语言如何获得文件当前路径全部的内容,包括:c语言如何获得文件当前路径、linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录、如何使用Python获取文件所在目录和文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9466672.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存