2012-01-12 51 views
2

我目前正在使用一个返回File对象的外部库函数。这适用于在默认位置创建文件,但为了适应并发用户,我需要将文件放在特定的文件夹中。如果不能修改生成该文件的函数,是否有一个File函数可以让我指定它要去的地方?如何在Java中的特定位置返回文件?

回答

1

您可以使用renameTo(File destination)File API中重命名该文件将其存储在另一个抽象路径。

例如:

import java.io.File; 

public class MainClass { 

    public static void main(String args[]) { 

    try { 

     File oldFile = new File("/usr/bin/temp/"); 

     File newFile = new File("/usr/bin/hunter/temp"); 

     boolean result = oldFile.renameTo(newFile); 

     System.out.println(result); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

还要注意的是,API说,这并不总是保证成功,所以你需要检查每一个您使用此方法时,方法调用的返回值。

0

你可以改变工作目录,如果只有Java的让你这样做。事实上,如果你收到一个已经创建的文件,你仍然可以使用File.renameTo()来移动它。

1

首先要获取的文件,然后使用File.renameTo()它移动到您指定的位置。

+0

这是否会工作,但。如果通话是在两个不同的位置进行的,两个文件在移动之前是否会发生冲突? – Bennie 2012-01-12 16:57:13

0

不,你需要做些什么来改变它创建文件,将返回的文件,设置一个工作目录,等后两种可能仍然存在问题,不过,这取决于如何应用程序设置向上。

如果你有一些洞察你可以使用AOP的方法。

1

我相信你会创造你想要的位置的新File对象,然后使用FileInputStream在原始FileFileOutputStream读写信给你想要的位置。

如果我没有记错,File.renameTo并不总是最好(见Javadoc)。

0

java.io.File对象只是文件或目录路径名的抽象表示形式,即它只是文件的名称和位置,而不是实际的文件。不知道你正在使用的库,我不知道它是否已经创建了文件,并且只是告诉你它在哪里(我认为这很可能),或者如果它是告诉你在哪里创建文件。但是,您寻找的答案很可能不涉及操作此File对象,而是与库执行不同的操作来确定文件的位置。

相关问题