我在内存中为我的应用程序创建文件夹时遇到了一些问题。我正在使用这段代码:
public static void createFoldersInInternalStorage(Context context){
try {
File usersFolder = context.getDir("users", Context.MODE_PRIVATE);
File fileWithinMyDir = new File(usersFolder, "users.txt"); //Getting a file within the dir.
FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file.
File dataFolder = context.getDir("data", Context.MODE_PRIVATE);
File fileWithinMyDir2 = new File(dataFolder, "data.txt"); //Getting a file within the dir.
FileOutputStream out2 = new FileOutputStream(fileWithinMyDir2); //Use the stream as usual to write into the file.
File publicFolder = context.getDir("public", Context.MODE_PRIVATE);
File fileWithinMyDir3 = new File(publicFolder, "public.txt"); //Getting a file within the dir.
FileOutputStream out3 = new FileOutputStream(fileWithinMyDir3); //Use the stream as usual to write into the file.
} catch(FileNotFoundException e){
e.printStackTrace();
}
}
因此创建了文件夹,但在其名称前面有一个"app_"
:app_users
,app_data
,app_public
。有没有办法用我给出的名字创建文件夹?还有一个问题:我想先创建文件夹Documents
,然后创建其他所有文件夹"Data, Public, Users"
....最后一个问题:如果我想创建一个文件夹,我该如何给出正确的文件夹路径内部存储器中Documents/Users/myfile.txt
的文件?
提前致谢!
答案 0 :(得分:2)
您可以使用:
File myDir = context.getFilesDir();
String filename = "documents/users/userId/imagename.png";
File file = new File(myDir, filename);
file.createNewFile();
file.mkdirs();
FileOutputStream fos = new FileOutputStream(file);
fos.write(mediaCardBuffer);
fos.flush();
fos.close();
答案 1 :(得分:1)
有没有办法用我给出的名字创建文件夹?
使用getFilesDir()
和Java文件I / O而不是getDir()
。
如果我想在内存中的Documents / Users / myfile.txt中创建文件,我该如何给出正确的文件夹路径?
使用getFilesDir()
和Java文件I / O,例如File
构造函数,它使用File
和String
来组合路径。