gpt4 book ai didi

android - 文件存在测试对缓存文件夹不起作用...?

转载 作者:行者123 更新时间:2023-11-28 21:34:38 25 4
gpt4 key购买 nike

我的程序检查默认缓存文件夹中是否存在特定文件。如果文件存在,它会打开它并读取内容。如果该文件不存在,则该文件将从 Web 中提取并存储在缓存文件夹中。我遇到的问题是,无论文件是否在缓存文件夹中,我的文件测试总是返回 false。有趣的是,即使文件测试返回 false,我仍然可以从缓存文件夹中打开文件并读取它。我可以在缓存文件夹中提取文件列表,我可以看到文件在那里,但是当我进行文件测试以查看文件是否在那里时,它返回 false,即使我知道文件在那里并且我可以打开它并查看其中的内容。

我尝试了常规的 exists() 测试,甚至一个一个地读取缓存目录中的每个文件,并将名称与我要查找的文件进行比较,但仍然返回 false。

提前感谢您的帮助!

String file = "test.txt"
String content = "testing";

putFile(file, content);
Boolean fileIsThere = checkFile(file);

public Boolean checkFile(String file){
Boolean fileExists = false;

// regular file test - always returns false, even if the file is there
File f = new File(file);
if (f.exists())
fileExists = true;

// comparing each individual file in the directory - also returns false
String[] dirFiles = fileList();
for (int i = 0; i < dirFiles.length; i++) {
if (dirFiles[i] == file){
fileExists = true;
break;
}
}

return fileExists;
}


public void putFile(String file, String content){
try {
FileOutputStream fos = openFileOutput(file, Context.MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
Log.w("putFile", "Error (" + e.toString() + ") with: " + file);
}
}

有什么想法吗?我在想,因为我将文件放在缓存文件夹中,所以我在文件测试中总是会出错。我只是想看看是否有其他人遇到过这个问题并对其进行了修复,或者我是否必须创建一个特定的目录并将我的文件存储在那里,或者其他什么。 putFile() 中的“Context.MODE_PRIVATE”与它有什么关系吗?

最佳答案

如果你想测试存储在上下文存储中的文件是否存在 data/data/nameOfPackage/files/text.txt 你必须像这样重写字符串文件

String file = "/data/data/nameOfPackage/files/test.txt"

然后您可以检查 test.txt 文件的 exists() 方法。我希望它能帮助你。 :)

关于android - 文件存在测试对缓存文件夹不起作用...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com