我想使用访问我当前的工作目录
String current = new java.io.File( "." ).getCanonicalPath();
System.out.println("Current dir:"+current);
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" +currentDir);
Run Code Online (Sandbox Code Playgroud)
输出:
Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32
Run Code Online (Sandbox Code Playgroud)
我的输出不正确,因为C盘不是我当前的目录.在这方面需要帮助.
我在Windows上运行Ruby虽然我不知道这是否应该有所作为.我想要做的就是获取当前工作目录的绝对路径.这可能来自irb吗?显然,从脚本中可以使用它File.expand_path(__FILE__)
但是从irb我尝试了以下内容并得到了"Permission denied"错误:
File.new(Dir.new(".").path).expand
Run Code Online (Sandbox Code Playgroud) 是否存在与平台无关且与文件系统无关的方法来获取使用C/C++运行程序的目录的完整路径?不要与当前的工作目录混淆.(请不要建议使用库,除非它们是clib或STL等标准库.)
(如果没有平台/文件系统无关的方法,也欢迎在Windows和Linux中使用特定文件系统的建议.)
首先,我看到了这个话题,但我无法理解.
题 :
有一个D:\path\to\file.bat包含以下内容的批处理文件:
echo %cd%
pause
Run Code Online (Sandbox Code Playgroud)
输出是:
C:\
Run Code Online (Sandbox Code Playgroud)
肯定是 D:\path\to
我究竟做错了什么?
我在app特定目录中有几个Makefile,如下所示:
/project1/apps/app_typeA/Makefile
/project1/apps/app_typeB/Makefile
/project1/apps/app_typeC/Makefile
Run Code Online (Sandbox Code Playgroud)
每个Makefile在此路径中包含一个.inc文件:
/project1/apps/app_rules.inc
Run Code Online (Sandbox Code Playgroud)
在app_rules.inc里面我正在设置我希望在构建时放置二进制文件的目的地.我希望所有二进制文件都在各自的app_type路径中:
/project1/bin/app_typeA/
Run Code Online (Sandbox Code Playgroud)
我尝试过使用$(CURDIR),像这样:
OUTPUT_PATH = /project1/bin/$(CURDIR)
Run Code Online (Sandbox Code Playgroud)
但相反,我把二进制文件埋在整个路径名中,如下所示:( 注意冗余)
/project1/bin/projects/users/bob/project1/apps/app_typeA
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能获得执行的"当前目录",这样我才能知道app_typeX为了将二进制文件放在各自的类型文件夹中?
如何在Java程序中更改当前工作目录?我能找到的关于这个问题的一切声称你根本做不到,但我不相信那是真的.
我有一段代码,它使用来自通常启动的目录的硬编码相对文件路径打开文件,我只是希望能够在不同的Java程序中使用该代码,而无需从内部启动它一个特定的目录.看起来你应该只能调用System.setProperty( "user.dir", "/path/to/dir" ),但据我所知,调用该行只是默默地失败并且什么都不做.
我会理解,如果Java不允许你这样做,如果它不是因为它允许你获得当前的工作目录,甚至允许你使用相对文件路径打开文件....
我正在制作一个C程序,我需要从中获取程序启动的目录.该程序是为UNIX计算机编写的.我一直在寻找opendir()和telldir(),但telldir()返回off_t (long int),所以它确实没有帮助我.
如何在字符串(char数组)中获取当前路径?
我知道我可以使用cd命令在bash中更改我的工作目录.
但是,如果我执行此命令:
cd SOME_PATH && run_some_command
Run Code Online (Sandbox Code Playgroud)
然后工作目录将永久更改.有没有办法像这样暂时更改工作目录?
PWD=SOME_PATH run_some_command
Run Code Online (Sandbox Code Playgroud) 我每分钟从crontab运行一个python shell:
* * * * * /home/udi/foo/bar.py
Run Code Online (Sandbox Code Playgroud)
/home/udi/foo有一些必要的子目录,比如/home/udi/foo/log和/home/udi/foo/config,/home/udi/foo/bar.py指的是.
问题是crontab从不同的工作目录运行脚本,因此尝试打开./log/bar.log失败.
有没有一种很好的方法告诉脚本将工作目录更改为脚本自己的目录?我想要一个适用于任何脚本位置的解决方案,而不是明确地告诉脚本它在哪里.
编辑:
os.chdir(os.path.dirname(sys.argv[0]))
Run Code Online (Sandbox Code Playgroud)
是最紧凑的优雅解决方案.感谢您的回答和解释!