问题标签 [path-separator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
96 浏览

r - 在 R 中,使用带有命令行参数的空格在路径中调用外部程序

这里结合了令人沮丧的问题。本质上,我希望 R 使用命令行参数打开一个外部程序。我目前正在尝试在 Windows 机器上实现它,理想情况下它可以跨平台工作。

程序 (chimera.exe) 位于包含空格的目录中:C:\Program Files\Chimera1.15\bin\ 命令行选项可以是例如--nogui标志和脚本名称,因此我将在 shell 中编写(除了空间细节):

如果我进入 Windows cmd.exe 到目录本身并输入chimera.exe --nogui scriptfile

现在在 R 中:

我一直在玩shell(),shell.exec()system(),但基本上我失败了,因为空格和/或路径分隔符。

大多数时候 system() 只是出于某种原因打印“127”:

后/前斜线使问题进一步复杂化,但不使其工作:

当我将程序安装在没有空格的目录中时,它可以工作。如何转义或传递system()相关命令中的空格,或者如何调用程序?

0 投票
2 回答
148 浏览

c# - 如何通过在 C# 中保留原始路径的目录分隔符来组合路径?

如果我们有/TestDir一个示例路径,但我们在 Windows 机器上,使用Path.JoinPath.CombinewithNextDir将产生/TestDir\NextDir

有没有办法让它,如果我将它附加到的路径使用给定的分隔符 - 组合路径使用相同的分隔符?(Unix/Windows),即:

  • \TestDirNextDir屈服\TestDir\NextDir
  • /TestDirNextDir屈服/TestDir/NextDir

第一个目录将始终是根路径,这意味着它将始终包含要使用的路径分隔符。唯一的边缘情况是网络路径,因为它们总是以开头\\但之后它们在 Unix/Windows 中有所不同?如果我在这方面错了,请纠正我。

编辑:有人告诉我这:是 Classic Mac 的路径分隔符 - 这是真的吗?我没有看到任何将其视为目录分隔符的 .NET API。

0 投票
2 回答
205 浏览

python - 为什么 os.path.join 返回带有 2 个斜杠的结果?

为什么它添加 2 '\' 而不是 1 '/'?我正在尝试在我的模型的火车目录中创建一个猫文件夹(使用 Jupyter Notebook),我将在其中放置猫的图像。因为它 os.path.join 返回 2 '\' 这就是我无法通过代码复制/放置图像的原因。任何人都可以帮助我更好地理解 os.path.join ,因为我已经阅读了几篇文章,但这些都没有帮助

这就是它返回的内容

而不是一个'/'它返回2'\'?

0 投票
0 回答
42 浏览

java - File.separator 和“/”在可运行 jar 中的工作方式不同

语境

我检测到File.separator在编译为可运行 jar 的一段代码中使用时的奇怪行为。

对于上下文,我有一个 xml 支持的数据库。然后程序与该数据库进行交互,在开始时解析整个文档,创建对象,修改它们,然后在程序结束时更新 xml 文件。

实际内容和/或文件类型实际上无关紧要,但我已经包含了一个简单的 Hello World txt 作为示例。无论哪种方式,该文件都被数据库读取为InputStream(唯一的区别是我从 that 解析实际的 xml InputStream)。

MWE

数据库.java

主.java

你好世界.txt

问题描述

  • is1用于/分隔目录,而is2使用File.separator
  • 通过 IDE (Eclipse) 运行,这两个语句都不会导致异常,并产生以下输出:
  • 将代码编译为可运行的 jar(在 Eclipse 中,右键单击项目,左键单击导出,然后按照提示输入可运行的 jar),然后从命令行运行会导致NullPointerException抛出is2. 这是以下输出:
  • 请注意,该System.out.println();语句并不意味着实际给出HelloWorld.txt文件的内容,只是为了检查是否InputStream有效或触发异常

问题

  • 直接从Oracle引用:编辑:正如 Erwin Bolwidt 指出的,这是关于 atg 的,不适用于 jdk。很抱歉没有注意到这一点。

为文件属性指定值时,Nucleus 将正斜杠 (/) 转换为您平台的文件分隔符(例如,Windows 使用反斜杠 (\) 作为文件分隔符)。

  • 这意味着两者都File.separator应该/提供相同的结果。但是,MWE 显示前者在运行 jar 时不起作用,而后者在 IDE 和 jar 中都可以工作。这是一个错误吗?或者我错过了什么,这是实际的预期行为?
  • 我一直在使用File.separator,根据这篇文章,这是确保未来平台兼容性的最安全方法。无论这是错误还是实际预期的行为,我应该如何解决这个问题?(我可以只使用/,但我又会失去平台独立性......)
0 投票
1 回答
26 浏览

javascript - string path to folders/file object javascript

I have some problems with serialise data.

I have array of objects like this (pseudo-files):

How i can convert without recursion this to tree with folders and files inside like: