【问题标题】:How to access temp directory of the local machine如何访问本地机器的临时目录
【发布时间】:2015-03-27 23:33:09
【问题描述】:

我正在开发一个需要打开附件的应用程序。我需要单击“打开”按钮并打开一个 pdf 文件。我这样做的方式是从服务器获取内容并将其写入临时目录上的某个位置。

但是,当我尝试从远程计算机访问此服务时, http://myserverIP:port/openMyAttachment,它访问的是 myserverIP 的临时目录,而不是本地机器。然后它会在 myserverIP 上打开文件。

我正在使用以下代码来获取临时目录:

    String tmp = System.getProperty("java.io.tmpdir");      
    JFileChooser fc = new JFileChooser();
    FileSystemView fsv = fc.getFileSystemView();
    File f = fsv.getDefaultDirectory();
    String dir = f.getAbsolutePath();
    String strDirectory = "temp~" + f.separator;

有人可以分享你的想法吗?如何访问本地机器上的临时目录并将文件写入本地机器?

【问题讨论】:

    标签: java swing jfilechooser tempdir


    【解决方案1】:

    你试图在服务器上做太多事情。如果你有一个本地运行的 Java 程序,那么它应该显示JFileChooser,然后获取文件,将其写入本地临时空间并显示它。服务器唯一应该做的就是提供一个InputStream 来从中获取文件内容。如果您将服务器更改为具有 getAttachment 查询(或其他内容)而不是仅提供 pdf 文件的 openMyAttachment 查询。然后您应该可以使用URLConnection 获取它并在本地计算机上完成工作。

    【讨论】:

    • 感谢您的回复。 new JFileChooser() 现在抛出空指针异常。任何想法为什么?
    • 你能展示一下代码现在的样子吗?只是调用 new JFileChooser() 不会导致 NPE。
    • 感谢史蒂夫的回复。代码与上面相同。我们没有进一步进行,现在我们将再次开始处理这个模块。问题是在获取 tmp 变量后会抛出空指针异常。
    • 原帖中的代码无法在第二行抛出 NPE。您是否转储了堆栈跟踪并且它所抛出的行号是 FileChooser 调用并且没有参数?
    猜你喜欢
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2012-02-17
    • 2019-07-12
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多