Java 获取本地Android项目文件的文件路径
我想以编程方式访问项目文件夹中包含的特定文件。有办法做到这一点吗?如果是这样的话,我应该把文件放在我的项目文件夹中的什么位置,以及获取文件路径的简单代码是什么Java 获取本地Android项目文件的文件路径,java,android,file,Java,Android,File,我想以编程方式访问项目文件夹中包含的特定文件。有办法做到这一点吗?如果是这样的话,我应该把文件放在我的项目文件夹中的什么位置,以及获取文件路径的简单代码是什么 private void saveFileToDrive() { Thread t = new Thread(new Runnable() { @Override public void run() { try {
private void saveFileToDrive() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
java.io.File spreadsheet = new java.io.File("Untitled spreadsheet.xlsx");
String filePath = spreadsheet.getAbsolutePath();
System.out.println("file path is"+filePath);
URL fileURL = getClass().getClassLoader().getResource("Untitled spreadsheet.xlsx");
String filePath2 = fileURL.getPath();
System.out.println("file path2 is"+filePath2);
java.io.File fileContent = new java.io.File(filePath);
FileContent mediaContent = new FileContent("application/vnd.ms-excel", fileContent);
File body = new File();
body.setTitle(fileContent.getName());
body.setMimeType("application/vnd.ms-excel");
File file = service.files().insert(body, mediaContent).setConvert(true).execute();
if (file != null) {
showToast("File uploaded: " + file.getTitle());
}
else
;
} catch (UserRecoverableAuthIOException e) {
startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch (IOException e) {
e.printStackTrace();
}
}
});
t.start();
}
这在很大程度上取决于要访问的文件类型。您可以将文件放在
资产
或资源
的相应子目录中(请参阅)。将文件放在项目的根文件夹中。然后获取文件URL、路径和其他详细信息,如下所示:
File file = new File("test.txt");
String filePath = file.getAbsolutePath();
编辑:另一种方式(如果文件位于类路径中,例如,将文件放入“src”文件夹,并确保编译后将其移动到“bin”或“classes”文件夹中):
因此,您希望访问应用程序内部的文件;您希望直接执行此操作,也就是说,从Android上下文(然后使用
[Android.|.]R..
)执行此操作
关于位置,您有两种选择:res/raw
文件夹或assets/
文件夹(在res
父文件夹之外)
从两个音符中进行选择
以原始形式保存的任意文件。要使用原始InputStream
打开这些资源,请使用资源ID调用resources.openRawResource()
,资源ID为R.raw.filename
但是,如果您需要访问原始文件名和文件层次结构,您可以考虑在<代码>资产/< /COD>目录中保存一些资源(而不是<代码> RES/WORD/)。
assets/
中的文件没有资源ID,因此只能使用AssetManager
读取它们
要直接访问res/raw/
中的文件,即从Android上下文(然后使用[Android.|.]R..
)访问文件,您可以执行以下操作:
File file = new File("app/src/main/res/raw/country_data_from_world_bank.xml");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
这最好作为一个评论和投票来结束:你只是说“这取决于…”并链接到另一个答案。关键点是,虽然这些机制使数据可用,但它不是java.io.FileMy fileURL被设置为null,尽管我已按照您的建议将文件放在根文件夹中。@JohnRoberts您是否在某些IDE中运行程序,例如eclipse?@JohnRoberts您需要访问文件路径还是文件本身?@JohnRoberts用工作代码更新了答案。现在有两个选择。两人都在工作。尝试其中任何一种方法。此答案都不可行,因为它忽略了这样打包的数据不是文本文件的事实。请注意,接受的答案是错误的。
File file = new File("app/src/main/res/raw/country_data_from_world_bank.xml");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));