在 java 中的目录路径中添加单个正斜杠或双反斜杠
Adding a single forward slash or double backward slash to directory path in java
我正在使用 JFileChooser 获取我的项目中的目录路径。它工作得很好,但有一个小问题。假设这是目录结构:
->Home
->Documents
->Java
这是代码:
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int userSelection=fileChooser.showSaveDialog(this);
if(userSelection==JFileChooser.APPROVE_OPTION){
try{File fileTosave=fileChooser.getSelectedFile();
File newFile=new File(fileTosave.getAbsolutePath()+"satish.txt");
System.out.println(newFile);
this.dispose();}
catch(Exception e){}
}
如果我目前在 java 文件夹中,它会在 windows 中为我提供路径 Home/Documents/Java
(或主页:\Documents\Java)。我想要的是它应该 return 包含单正斜杠或双正斜杠(根据平台)的路径,使其看起来像 Home/Documents/Java/
。我想这样做是因为稍后我必须将文件名附加到此路径,以便文件路径变为 Home/Documents/java/file.txt
.
关于如何做到这一点有什么想法吗?
我不想手动添加斜杠,因为那样我还必须牢记平台。
谢谢!
Java 不提供将文件路径作为字符串转换为开箱即用的不同 OS 格式的方法或策略。您需要编写自己的方法来执行此操作,或者利用已经为您解决此问题的库。
比如可以用Apache Commons IO来解决,使用方法:
FilenameUtils.separatorsToSystem(String path)
使用java.io.File.pathSeparator
/**
* The system-dependent path-separator character, represented as a string
* for convenience. This string contains a single character, namely
* <code>{@link #pathSeparatorChar}</code>.
*/
public static final String pathSeparator = "" + pathSeparatorChar;
您的代码应该如下所示
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int userSelection=fileChooser.showSaveDialog(this);
if(userSelection==JFileChooser.APPROVE_OPTION){
try{File fileTosave=fileChooser.getSelectedFile();
File newFile=new File(fileTosave.getParent() + File.separator +"satish.txt");
System.out.println(newFile);
this.dispose();}
catch(Exception e){}
}
我正在使用 JFileChooser 获取我的项目中的目录路径。它工作得很好,但有一个小问题。假设这是目录结构:
->Home
->Documents
->Java
这是代码:
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int userSelection=fileChooser.showSaveDialog(this);
if(userSelection==JFileChooser.APPROVE_OPTION){
try{File fileTosave=fileChooser.getSelectedFile();
File newFile=new File(fileTosave.getAbsolutePath()+"satish.txt");
System.out.println(newFile);
this.dispose();}
catch(Exception e){}
}
如果我目前在 java 文件夹中,它会在 windows 中为我提供路径 Home/Documents/Java
(或主页:\Documents\Java)。我想要的是它应该 return 包含单正斜杠或双正斜杠(根据平台)的路径,使其看起来像 Home/Documents/Java/
。我想这样做是因为稍后我必须将文件名附加到此路径,以便文件路径变为 Home/Documents/java/file.txt
.
关于如何做到这一点有什么想法吗?
我不想手动添加斜杠,因为那样我还必须牢记平台。
谢谢!
Java 不提供将文件路径作为字符串转换为开箱即用的不同 OS 格式的方法或策略。您需要编写自己的方法来执行此操作,或者利用已经为您解决此问题的库。
比如可以用Apache Commons IO来解决,使用方法:FilenameUtils.separatorsToSystem(String path)
使用java.io.File.pathSeparator
/**
* The system-dependent path-separator character, represented as a string
* for convenience. This string contains a single character, namely
* <code>{@link #pathSeparatorChar}</code>.
*/
public static final String pathSeparator = "" + pathSeparatorChar;
您的代码应该如下所示
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int userSelection=fileChooser.showSaveDialog(this);
if(userSelection==JFileChooser.APPROVE_OPTION){
try{File fileTosave=fileChooser.getSelectedFile();
File newFile=new File(fileTosave.getParent() + File.separator +"satish.txt");
System.out.println(newFile);
this.dispose();}
catch(Exception e){}
}