如何在Eclipse中使用Paths.get(args[0])获取data文件夹中的文件?
命令行参数读取文件报“Error opening file”的解决办法
先排查最容易踩的坑
路径没写对
- 用相对路径时,得匹配程序运行的当前工作目录。比如程序在项目根目录,data文件夹和程序平级,参数要写
data/test01,别只写test01(程序会在当前工作目录找,而非data文件夹内)。 - 嫌相对路径麻烦就直接写绝对路径,比如
C:\project\data\test01(Windows)或者/home/xxx/project/data/test01(Linux),避免路径歧义。 - 核对文件名细节:Linux/macOS区分大小写,
Test01和test01是不同文件;还要确认有没有遗漏后缀,比如实际文件是test01.txt,你却只传了test01。
- 用相对路径时,得匹配程序运行的当前工作目录。比如程序在项目根目录,data文件夹和程序平级,参数要写
文件读取权限不足
- Linux/macOS下用
ls -l data/test01查看权限,若没有读权限,执行chmod +r data/test01添加读取权限。Windows右键文件打开「属性-安全」,给当前用户配置读取权限。
- Linux/macOS下用
代码逻辑问题
- 检查命令行参数的获取:比如C语言里别把
argv[1]写成argv[0](argv[0]是程序自身的路径);Python里别误用sys.argv[0]。 - 加调试输出,把程序实际要打开的路径打印出来,确认是否和预期一致——比如代码拼接路径时多了斜杠、少了文件夹名这类低级错误。
- 检查命令行参数的获取:比如C语言里别把
快速验证方法
先跳过程序,直接用系统命令读取文件:Linux/macOS执行cat data/test01,Windows执行type data\test01。如果命令能正常读出内容,说明问题出在程序代码里;如果命令也报错,那就是路径或权限的问题。
内容的提问来源于stack exchange,提问作者The Avatar Redemption
相关产品推荐
相关产品推荐

