0

好吧,我在 Android 应用程序中生成了一个 PDF,但我需要标题才能包含系统的日期和时间。所以我编译了这段代码:

public void createPDF()
{
    Document doc = new Document();

     try {
         Date date = new Date();
         String dateTime = DateFormat.getDateTimeInstance().format(date);
         File sdCard = Environment.getExternalStorageDirectory();
         File dir = new File (sdCard.getAbsolutePath() + "/Bitacora");
         dir.mkdirs();
         File file = new File(dir, "Bitácora "+idetotrocliente.getText().toString()+", "+dateTime+vwfecha1.getText().toString()+etsitio.getText().toString()+".pdf");
         FileOutputStream fOut = new FileOutputStream(file);

但是当我尝试在应用程序中生成 PDF 时,日志给了我这个错误:

08-28 21:32:38.950: E/PDFCreator(12425): ioException:java.io.FileNotFoundException: /mnt/sdcard/Bitacora/Bitácora ¡VALOR NECESARIO!, ago 28, 2013 9:32:24 p.m..pdf (Invalid argument)

当我删除“dateTime”变量时,PDF 会正确生成,但我需要将日期放在标题中。我能做些什么?:(

4

1 回答 1

0

问题似乎是因为:. 请参阅Android 上的文件名中允许使用哪些字符?. :是一种保留字符,因此不能在文件名中使用。尝试使用.replace函数将其替换为""(即空字符串) 。然后用它来创建PDF。另请参阅Android - 如何用另一个字符串替换部分字符串?

于 2013-08-29T15:46:42.270 回答