给出两条绝对路径,例如
/var/data/stuff/xyz.dat
/var/data
Run Code Online (Sandbox Code Playgroud)
如何创建使用第二条路径作为基础的相对路径?在上面的例子中,结果应该是:./stuff/xyz.dat
我想知道Java中是否有这样的方法.以此片段为例:
// this will output a/b
System.out.println(path_join("a","b"));
// a/b
System.out.println(path_join("a","/b");
Run Code Online (Sandbox Code Playgroud) 我需要一个小代码片段,它从给定的.zip文件中解压缩一些文件,并根据它们在压缩文件中的格式提供单独的文件.请发布您的知识并帮助我.
我想知道使用 Paths.get() 和 Path.resolve 之间有什么区别,如下例所示:
public static void main(String[] args) {
Path p1 = Paths.get("dir1","dir2","file.jpg");
Path p2 = Paths.get("").resolve("dir1/dir2/file.jpg");
System.out.println(p1.toString()); // yields: dir1/dir2/file.jpg
System.out.println(p2.toString()); // yields: dir1/dir2/file.jpg
}
Run Code Online (Sandbox Code Playgroud)
看起来两者的行为相同,但在 Java EE 应用程序中,我目睹了p1将主目录分配为前缀。我找到了 @Aleksandr Dubinsky 对 StackOverflow 问题How to join paths in Java?的回答。,但我不明白引用的javadoc的含义:
请注意,Paths.get() (如其他人建议的那样)没有采用 Path 的重载,并且执行 Paths.get(path.toString(), childPath) 与resolve () 不同。来自 Paths.get() 文档:
请注意,虽然此方法非常方便,但使用它意味着假定引用默认文件系统并限制调用代码的实用性。因此,它不应该在旨在灵活重用的库代码中使用。更灵活的替代方案是使用现有的 Path 实例作为锚点,例如:
Run Code Online (Sandbox Code Playgroud)Path dir = ... Path path = dir.resolve("file");
具体来说,我不明白 javadoc 想要说的“将暗示对默认文件系统的假定引用”。
在我的代码中,我想转换表单的路径
/a/path/to/a/file/image.jpg
Run Code Online (Sandbox Code Playgroud)
到
/a/path/to/a/file/image_resized.jpg
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用以下FilenameUtils来自 apache commons IO 的代码。
public Path resize(Path original) {
String baseName = FilenameUtils.getBaseName(original.toString());
String extension = FilenameUtils.getExtension(original.toString());
return Paths.get(original.getParent().toString(), baseName + "_resized." + extension);
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以使用 java 8 功能增强其中的某些代码,特别是:
toString()in 的情况下加入 PathsPaths.get(existingPath.toString(), "path/to/append");我有以下 Groovy 脚本,我试图在其中获取目录名和文件名:
File dir = new File("C://Users//avidCoder//Project")
log.info dir //Fetching the directory path
String fileName = "Demo_Data" + ".json"
log.info fileName //Fetching the file name
String fullpath = dir + "\\" + fileName
log.info fullpath //Fetching the full path gives error
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,出现以下异常:
“java.io.File.plus() 适用于参数类型”
为什么创建fullpath变量会抛出这个异常?
我正在我的一个应用程序中的SD卡上创建一个目录和一个文本文件,因为我希望能够将它移动到我的计算机上进行分析.但我无法使用计算机上的文件浏览器找到我在SD卡上创建的文件夹或文件.我可以使用我的手机文件管理器找到并读取文件,但不能在Windows中使用文件浏览器.因此,文件和文件夹已成功创建,我可以写入文件,我也可以使用手机上的文件管理器查找和读取文件,但我无法使用计算机找到目录或文件.
我有一个应用程序的使用权限,允许它写入外部存储.
这是我用来创建文件和目录的代码.
String fileName = "testFil.txt";
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/PulsApp";
File appDirectory = new File(path);
appDirectory.mkdirs();
File file = new File(path, fileName);
try {
file.createNewFile();
} catch (IOException e) {
}
Run Code Online (Sandbox Code Playgroud)
有谁知道问题是什么以及如何解决它?我真的需要能够将文件写入我的SD卡,以便将它们传输到我的电脑上.
我完全被这个问题困惑,因为我所做的所有研究都指出其他人都在做同样的事情.