Java 新文件(路径)总是在android上创建文件?
我正在尝试检查android sd卡上是否存在文件…因此我会:Java 新文件(路径)总是在android上创建文件?,java,android,file,android-file,Java,Android,File,Android File,我正在尝试检查android sd卡上是否存在文件…因此我会: File f=new File(sdpath + "/" + DATABASE_NAME); // if(!f.exits()) { ...create new file.. } else { ...do something... } 每次在sd卡上创建目录或文件时 我知道它不存在,当新文件被执行时,它被创建了,不应该 我在谷歌上读到,新文件并没有在文件系统上创建一个实际的文件,但就我而言,它确实 检查文件/目录是否在不使用
File f=new File(sdpath + "/" + DATABASE_NAME); //
if(!f.exits()) {
...create new file..
}
else {
...do something...
}
每次在sd卡上创建目录或文件时
我知道它不存在,当新文件被执行时,它被创建了,不应该
我在谷歌上读到,新文件并没有在文件系统上创建一个实际的文件,但就我而言,它确实
检查文件/目录是否在不使用新文件的情况下退出的任何替代方法
编辑1:我想补充一点(4年后:)。在我写这篇文章的时候,这个问题只发生在两台设备上,而且再也没有发生过,其中一台是HTC Desire C和安卓4.0,另一台是华为安卓2.x,记不得了。这可能会帮助你,试试看
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//handle case of no SDCARD present
} else {
File file = new File(Environment.getExternalStorageDirectory()
+File.separator
+"myDirectory" //folder name
+File.separator
+"myFile.example"); //file name
if(file.exists()){
Toast.makeText(MainActivity.this, "Not Create ", 12).show();
}else{
file.mkdirs();
Toast.makeText(MainActivity.this, "Create ", 12).show();
}
}
工作方式与您的差不多:
File f = new File(Environment.getExternalStorageDirectory(), "a directory");
if(!f.exists){
// do something
}
检查文件是否存在的方法几乎相同:
File f = new File(Environment.getExternalStorageDirectory() + "/a directory/" + "a file");
if(!f.exists){
// do something
}
我希望它能帮助你,因为它没有在我的应用程序中创建文件或目录。它只是检查了路径。试试这个
File[] files = filedir.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
Toast.makeText(this, "directory", Toast.LENGTH_LONG).show();
} else {
if (file2.getName().equals(DATABASE_NAME)) {
Toast.makeText(this, "File found",Toast.LENGTH_LONG).show();
}
else{Toast.makeText(this, "File not found",Toast.LENGTH_LONG).show();
}
}
}
出于某种奇怪的原因,新文件每次都会创建一个目录 我没有检查
if(!f.exists())
,而是将它改为检查if(!f.isFile())
在这种情况下,我创建了一个新文件,它工作正常,下次我运行它时,文件已经在sd卡上了…我的sdpath就是这样构造的,所以我基本上已经这样做了:(这仍然和我做的一样…每次我放入新文件(某物)时,它都会创建一个具有该名称的目录。