我正在从两台计算机上完成一个项目,第一台在工作,第二台在家。当我使用FileRead
时,我需要更改FileRead
需要阅读的位置。
比如在家里就像这样:
ReadFile rf = new ReadFile("C:\\Users\\Home\\Desktop\\Project\\src\\triangle3d\\TheText.ase");
当我给自己发电子邮件并在我的工作场所打开它时,我需要每次都改变它:
ReadFile rf = new ReadFile("C:\\Users\\Work\\Desktop\\Project\\src\\triangle3d\\TheText.ase");
现在有一种方法可以找到 TheText.ase 而不说明它的位置吗? 这会有用吗? :
ReadFile rf = new ReadFile("TheText.ase");
答案 0 :(得分:1)
public class LocationFileManager
{
public LocationFileManager(String s)
{
ReadFile rf=new ReadFile("C:\Users\\" + s + "\Desktop\Project\src\triangle3d\TheText.ase");
}
public static void main(String[] args)
{
String s = ""; //<--------- enter here either Home or Work
LocationFileManager lfm = new LocationFileManager(s);
}
}
这可以通过简单地选择主方法中的s值来选择是回家还是工作
编辑---天啊,如果还有太多工作,那就试试吧......
import javax.swing.JOptionPane;
public class LocationFileManager
{
public LocationFileManager(String s)
{
ReadFile rf=new ReadFile("C:\Users\\" + s + "\Desktop\Project\src\triangle3d\TheText.ase");
}
public static void main(String[] args)
{
Object[] possibleValues = { "Home", "Work"};
String s = JOptionPane.showInputDialog(null,
"Choose one", "Input",
JOptionPane.INFORMATION_MESSAGE, null,
possibleValues, possibleValues[0]);
LocationFileManager lfm = new LocationFileManager(s);
}
}
答案 1 :(得分:1)
可能会找到您的桌面文件夹,然后从那里转到该文件,因为两台机器上都是相同的。
ReadFile rf=new ReadFile(System.getProperty("user.home") + File.separator + "Desktop" + "\Project\src\triangle3d\TheText.ase");
这可能比我的其他答案更好,因为它不依赖于DNS,因此不需要互联网访问。
希望这会有所帮助:)
答案 2 :(得分:0)
你可以创建一个看起来像你的计算机的方法然后加载文件: 您唯一需要做的就是在下面的is语句中输入您的工作计算机的名称和家用计算机的名称。名称是您的网络名称或首次启动时为计算机指定的名称。
String name = InetAddress.getLocalHost().getHostName();
if(name.equals("computerNameHome")){//home computer name
ReadFile rf=new ReadFile("C:\Users\Home\Desktop\Project\src\triangle3d\TheText.ase");
}else if(name.equals("computerNameWork")){//work computer name
ReadFile rf=new ReadFile("C:\Users\Work\Desktop\Project\src\triangle3d\TheText.ase");
}
希望这会有所帮助:)
编辑:这取决于DNS,因此您需要访问互联网才能执行此操作。
答案 3 :(得分:0)
您可以通过项目树中的相对路径名访问该文件。
private static void answer() {
final String relativePath = "src/triangle3d/TheText.ase";
File ase = new File(relativePath);
System.out.printf("absolute path: '%s'%n", ase.getAbsolutePath());
System.out.printf("is '%s' a file: %s%n", relativePath, ase.isFile());
}