我尝试使用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();
}
我无法理解这是什么问题?请帮我找出这个问题的原因。
答案 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();
}