0

我正在尝试使用时间戳作为名称来保存文件。当我自己命名文件时,我可以毫无问题地保存文件,但是当我尝试使用时间戳时它不起作用。这是我的代码:

        Long tsLong = System.currentTimeMillis()/1000;
        String ts = tsLong.toString();

        File newxmlfile = new File(Environment.getExternalStorageDirectory()
                 + ts);
        try {
            newxmlfile.createNewFile();
        } catch (IOException e) {
            Log.e("IOException", "exception in createNewFile() method");
        }

        FileOutputStream fileos = null;
        try {
            fileos = new FileOutputStream(newxmlfile);
        } catch (FileNotFoundException e) {
            Log.e("FileNotFoundException", "can't create FileOutputStream");
        }

有谁知道如何做到这一点?

编辑(已解决):我更改了下面的行,并使用时间戳将文件保存为 xml 文件。

File newxmlfile = new File(Environment.getExternalStorageDirectory()
                 ,ts + ".xml");
4

1 回答 1

5

我认为您正在使用无效路径创建文件。

当您进行字符串连接时:

Environment.getExternalStorageDirectory() + ts

...您将时间戳添加123456到文件路径(类似)/mnt/sdcard。你最终会得到一个无效的路径,比如:

/mnt/sdcard14571747181

(并且您无权写入该文件,因为它不在外部目录中。)

您可以自己添加文件分隔符,也可以使用以下命令创建文件:

File newxmlfile = new File(Environment.getExternalStorageDirectory(), ts);
                                                                    ^^
                                                                the change
于 2013-03-06T14:02:27.133 回答