创建文件夹而不是文件

时间:2014-06-13 12:57:33

标签: android file

我尝试使用java.io.File类创建文件,其中包含以下代码集:

1)File(String path)

String filePath = "/mnt/sdcard/myfolder/Log_201406130608.dat";
File dirMediaFile = new File(filePath); // Folder created at this point with "Log_201406130608.dat" name.
if(!dirMediaFile.exists())
{
    dirMediaFile.createNewFile();
}

2)File(File dir, String name)

String dirPath = "/mnt/sdcard/myfolder";
File dirFile = new File(dirPath);
if(!dirFile.exists())
{
    dirFile.mkdir();
}
downloadingMediaFile = new File(dirFile, "Log_201406130608.dat"); // Folder created at this point with "Log_201406130608.dat" name.

if(!downloadingMediaFile.exists())
{
    downloadingMediaFile.createNewFile();
}

我无法理解这是什么问题?请帮我找出这个问题的原因。

1 个答案:

答案 0 :(得分:-1)

没有为您创建目录而不是文件的文件名,所以不,它不是命名问题。

虽然硬编码路径适用于大多数设备,但这是一种不好的方法。

final String dirPath = "/mnt/sdcard/myfolder";

Envorinment获取如下所示的路径

您之前可能错误地创建了一个目录。

修复代码后,目录不会被删除。

以下情况应该有效。

final File dirFile = new File(Environment.getExternalStorageDirectory(), "myfolder");

if (dirFile.exists() && !dirFile.isDirectory()) {
    dirFile.delete();
}

if (!dirFile.exists()) {
    dirFile.mkdirs(); //mkdirs creates any previous directory, if not created before
}

downloadingMediaFile = new File(dirFile, "Log_201406130608.dat");

if (downloadingMediaFile.exists() && !downloadingMediaFile.isFile()) [
     // not a file, delete
    downloadingMediaFile.delete();
}

if (!downloadingMediaFile.exists())
{
    downloadingMediaFile.createNewFile();
}