linux C++ 获取文件绝对路径

提供ftp服务时需要获取文件绝对路径,这里记录一下。

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <limits.h>
 4
 5 int main(){
 6     const char *file_name = "filename";
 7     char abs_path_buff[PATH_MAX];
 8
 9     //获取文件路径, 填充到abs_path_buff
10     //realpath函数返回: null表示获取失败; 否则返回指向abs_path_buff的指针
11     if(realpath(file_name, abs_path_buff)){
12         printf("%s %s\n", file_name, abs_path_buff);
13     }
14     else{
15         printf("the file ‘%s‘ is not exist\n", file_name);
16     }
17
18     return 0;
19 }
时间: 2024-10-18 10:01:53

linux C++ 获取文件绝对路径的相关文章

一个获取文件绝对路径的sh

脚本里有个获取文件绝对路径的需求,linux里有个很方便的realpath命令,但是mac下没有,甚至readlink -f也跟linux下的表现不同,所以……直接用pwd算了 #!/bin/bash if [ $# -lt 1 ]; then echo "$0 <FILE_PATH> " exit 0 fi FILE_PATH=$1 cd `dirname $FILE_PATH` echo `pwd`/`basename $FILE_PATH` cd $OLDPWD

Windows和Linux下获取当前可执行文件路径和工作目录

1.Windows下的获取当前可执行文件的路径和当前工程目录. (1)获取当前可执行文件路径: #include <shlwapi.h> #pragma comment(lib, "shlwapi.lib") wchar_t szExePath[MAX_PATH] = {0}; GetModuleFileNameW(NULL, szExePath, sizeof(szExePath)); PathRemoveFileSpecW(szExePath); (2)如果想获取当前工

jsp和java获取文件或路径

1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test.class.getResource("/")得到的是当前的classpath的绝对URI路径.(3).Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI

如何在windows下和linux下获取文件(如exe文件)的详细信息和属性

程序员都很懒,你懂的! 最近在项目开发中,由cs开发的exe的程序,需要自动升级,该exe程序放在linux下,自动升级时检测不到该exe程序的版本号信息,但是我们客户端的exe程序需要获取服务器上新程序的版本号信息.最后由我用java实现linux上exe文件的版本号读取功能.下面是详细代码: package com.herman.utils; import java.io.File; import java.io.FileNotFoundException; import java.io.I

HDFS 读取、写入、遍历目录获取文件全路径

1.从HDFS中读取数据 Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSystem.get(conf); FSDataInputStream fsin= fs.open(path ); BufferedReader br =null; String line ; try{ br = new BufferedReader(new InputStreamReader(fsin))

linux 下查找文件的路径

必须提醒你的是:locate命令非常快,其实 locate 命令他查询的是系统中的一个数据库.这个数据库通常会在一定时间更新.这样确实很方便,但是:如果你新建一个文件 $ touch file_for_test然后你输入$ locate file_for_test这样你是不会找到这个文件的.这时你必须手动更新这个数据库,进入管理员权限($ sudo su - 或者其它之类)然后键入# updatedb 当你再入输入$ locate file_for_test 时你就能发现能找到它了~~~~ 祝好

获取文件绝对路径最后的文件夹名称

package com.tydic.eshop.action.freemarker; public class DDDDD { /** * @Title: main * @Description: 获取文件绝对路径最后的文件夹名称 * @param @param args 设定文件 * @return void 返回类型 * @throws */ public static void main(String[] args) { String strParentUrl = "E:\\hh_web_

Android获取文件夹路径 /data/data/

首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下.所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象.2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInput

获取文件path路径中的文件名(是否包含扩展名)

直接看代码吧 #获取文件path路径中文件名(去掉目录路径) sub get_file_basename{ my ($file_path) = @_; my @tmp_arr = split(/[\\|\/]+/,$file_path); my $len = @tmp_arr; if ($len >=2) { return $tmp_arr[-1]; }else{ return $file_path; } } #获取文件path路径中文件名(去掉目录路径,去掉扩展名) sub get_file_