2010-08-31 21 views
7

先生,我正在一个java应用程序中工作。在那个应用程序中,我必须从“我的文档”访问文件。问题是随着Windows版本,当我使用Windows 7时,它可以作为“文件”文件夹访问,但对于Windows XP它是“我的文档”。从“我的文档”中访问Windows XP和Windows 7文件时出错

我正在编写以下代码以访问Windows 7中“文档”文件夹中的文件。

public static void main(String[] arr) 
{ 
    try 
    { 
     String source = System.getProperty("user.home")+ File.separator + "Documents"; 
     File[] Files = new File(source).listFiles(); 
     System.out.println(Files.length); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

和Windows XP

public static void main(String[] arr) 
{ 
    try 
    { 
     String source = System.getProperty("user.home")+ File.separator + "My Documents"; 
     File[] Files = new File(source).listFiles(); 
     System.out.println(Files.length); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

请你能不能给我建议一个通用的方法,可应用于所有的Windows版本?

回答

1

您可以检查操作系统版本,然后使用它来映射正确的文件名。

+0

是的,你可以从系统属性中获得“os.name”和“os.version”; – mhshams 2010-08-31 12:10:40

+0

感谢您的回答。它对我来说工作得很好。 – Toman 2010-09-18 08:33:04

0

对此,没有标准的Java方法,但存在多个库,例如Winfoldersjava

不要简单地猜测并追加“我的文档”。您将在Windows的本地化版本中遇到问题。例如在挪威语中,名称是“Mine dokumenter”,而不是“我的文档”。