2012-01-12 32 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對象,而是與庫執行不同的操作來確定文件的位置。

相關問題