Java 在Android中的DCIM文件夹中创建文件夹(抱歉,另一个。)
好的,我正在Unity中制作一个游戏,我正在尝试截图并将其保存到我在DCIM文件夹中创建的文件夹中。我试着在Unity中创建文件夹,但始终没有成功。 我尝试在Android studio中创建一个插件来实现这一点,但也没有成功 以下是我的Java代码:Java 在Android中的DCIM文件夹中创建文件夹(抱歉,另一个。),java,android,unity3d,Java,Android,Unity3d,好的,我正在Unity中制作一个游戏,我正在尝试截图并将其保存到我在DCIM文件夹中创建的文件夹中。我试着在Unity中创建文件夹,但始终没有成功。 我尝试在Android studio中创建一个插件来实现这一点,但也没有成功 以下是我的Java代码: package foldercreator.TehBestCompany.com.foldermakerlibrary; import android.os.Environment; import android.util.Log; impo
package foldercreator.TehBestCompany.com.foldermakerlibrary;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.lang.String;
public class FolderMaker {
public boolean MoveFile( String filename, String sourceFolder, String destinationFolder )
{
String fullDestinationFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + destinationFolder;
Log( "Destination folder " + fullDestinationFolder);
final File f = new File( fullDestinationFolder );
if (!f.exists()) {
Log( "Folder doesn't exist, creating it...");
boolean rv = f.mkdir();
Log( "Folder creation " + ( rv ? "success" : "failed"));
} else {
Log( "Folder already exists.");
}
return true;
}
private void Log( String message )
{
Log.d("[LOG FILE]", message );
System.out.println( "[LOG FILE] " + message );
}
}
当我运行代码时,总会收到一条“文件夹创建失败”消息
这是我的库清单(我已经在Unity中选中了uses external storage选项,如果有帮助的话):
有人能给我一些建议吗
我知道这个问题以前被问过很多次,但在尝试了一整天的各种解决方案后,我完全没有主意了。对我来说,当我改变这一行时,它起了作用:
String fullDestinationFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + destinationFolder;
致:
然后:
File fileName = new File(fullDesinationFolder, "screenshot.jpeg");
或者直接做:
File fileName = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)+"/destenationFolder"), "screenshot.jpeg");
谢谢你的回答,但是我不能做你的第一个建议(即,
…DIRECTORY\u DCIM)+“/destenationFolder”)因为destinationFolder是由unity传递到这个插件中的,所以必须像我在代码中所做的那样构造它。至于你的第二个建议,你建议创建一个文件,然后检查它是否存在,但它永远不会存在,因为我还没有把它移到那里。我正在尝试创建要将文件移动到的目标文件夹。如果您不添加.toString()
,该文件夹也无法工作?(在目录\u DCIM
之后)没有。我这样做了,但仍然收到一条文件夹创建失败的消息<代码>字符串fullDestinationFolder=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u DCIM)+“/”+destinationFolder;最终文件f=新文件(fullDestinationFolder,文件名);如果(!f.exists()){Log(“文件夹不存在,正在创建…”);boolean rv=f.mkdirs();Log(“文件夹创建”+(rv?:“成功”);;}否则{Log(“文件夹已存在”);}
我看到您在目录\u DCIM
之后关闭括号。。。在destinationFolder
之后才关闭括号Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u DCIM+“/”+destinationFolder)
尝试了此操作,但仍然无效。最终文件f=新文件(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM+“/”+destinationFolder),文件名);如果(!f.exists()){Log(“文件夹不存在,正在创建它…”);boolean rv=f.mkdirs();Log(“文件夹创建”+(rv?):“成功”);如果(!rv)返回false;}否则{Log(“文件夹已存在”);}
File fileName = new File(fullDesinationFolder, "screenshot.jpeg");
File fileName = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)+"/destenationFolder"), "screenshot.jpeg");