获取指定文件路径的file.separator
Get file.separator of a specified file path
如何获取指定file/folder路径的文件分隔符?
在Java中,我们可以这样写,比如
File f = new File("C:\MyFolder\MyText.txt");
请记住,这是一个文件表示(该文件不一定实际存在)。那么给定任何指定的路径,是否有一种方法可以 return 仅用于该指定路径的分隔符?
来自docs
File.pathSeparator
和 File.pathSeparatorChar
returns 系统相关的文件分隔符,但我想要的是给定路径的分隔符,如上例 \
, 即使上面的程序是 运行 并且路径对 *nix
无效
我会从 System.getProperty("user.home")
开始。而且,你可以像
这样使用 File.seperator
File f = new File(System.getProperty("user.home") +
File.seperator + "MyText.txt");
但我更喜欢File(String parent, String child)
喜欢
File f = new File(System.getProperty("user.home"), "MyText.txt");
System.out.println(f.getPath());
File
对象的分隔符始终由 File.separator
(或 File.separatorChar
)给出。没有办法用不寻常的分隔符构造 File
对象;它们始终包含在当前系统上有效的路径。
File f = new File("C:\MyFolder\MyText.txt");
在 Windows 上执行此行后,f
引用一个 File
对象,该对象引用驱动器上文件夹 MyFolder
中的文件 MyText.txt
C:
,如您所愿。
但是在 Linux 上,f
引用一个 File
对象,该对象引用当前目录中的文件 C:\MyFolder\MyText.txt
。 (在 Linux 上,文件名中允许使用反斜杠)
想象一下,如果有办法做到这一点。如果你有一个用 new File("a/b\c")
构造的文件,那么你怎么知道它是指文件夹 a
中的文件 b\c
(带分隔符 /
),还是文件夹 a/b
中的文件 c
(带分隔符 \
)?
它不能,所以应该清楚没有可靠的方法可以做到这一点。如果您的程序处理带有不寻常分隔符的路径,那么您的程序需要自己处理它们。 File
无法为您完成。
如何获取指定file/folder路径的文件分隔符?
在Java中,我们可以这样写,比如
File f = new File("C:\MyFolder\MyText.txt");
请记住,这是一个文件表示(该文件不一定实际存在)。那么给定任何指定的路径,是否有一种方法可以 return 仅用于该指定路径的分隔符?
来自docs
File.pathSeparator
和 File.pathSeparatorChar
returns 系统相关的文件分隔符,但我想要的是给定路径的分隔符,如上例 \
, 即使上面的程序是 运行 并且路径对 *nix
我会从 System.getProperty("user.home")
开始。而且,你可以像
File.seperator
File f = new File(System.getProperty("user.home") +
File.seperator + "MyText.txt");
但我更喜欢File(String parent, String child)
喜欢
File f = new File(System.getProperty("user.home"), "MyText.txt");
System.out.println(f.getPath());
File
对象的分隔符始终由 File.separator
(或 File.separatorChar
)给出。没有办法用不寻常的分隔符构造 File
对象;它们始终包含在当前系统上有效的路径。
File f = new File("C:\MyFolder\MyText.txt");
在 Windows 上执行此行后,f
引用一个 File
对象,该对象引用驱动器上文件夹 MyFolder
中的文件 MyText.txt
C:
,如您所愿。
但是在 Linux 上,f
引用一个 File
对象,该对象引用当前目录中的文件 C:\MyFolder\MyText.txt
。 (在 Linux 上,文件名中允许使用反斜杠)
想象一下,如果有办法做到这一点。如果你有一个用 new File("a/b\c")
构造的文件,那么你怎么知道它是指文件夹 a
中的文件 b\c
(带分隔符 /
),还是文件夹 a/b
中的文件 c
(带分隔符 \
)?
它不能,所以应该清楚没有可靠的方法可以做到这一点。如果您的程序处理带有不寻常分隔符的路径,那么您的程序需要自己处理它们。 File
无法为您完成。