我正在使用我自己的扩展名“.swp”将文件与我的应用程序相关联。当用户尝试使用该扩展名打开文件时,我可以选择我的应用程序。例如,如果在 sd 卡的任何地方都有文件“file1.swp”,并且如果用户单击该文件,我的应用程序也将在打开该应用程序的选项列表中可用。但是我想在它选择我的应用程序打开时将“file1.swp”保存在某个临时文件夹中。
有什么建议请......
我正在使用我自己的扩展名“.swp”将文件与我的应用程序相关联。当用户尝试使用该扩展名打开文件时,我可以选择我的应用程序。例如,如果在 sd 卡的任何地方都有文件“file1.swp”,并且如果用户单击该文件,我的应用程序也将在打开该应用程序的选项列表中可用。但是我想在它选择我的应用程序打开时将“file1.swp”保存在某个临时文件夹中。
有什么建议请......
我在下面发布我的整个代码,以便其他有相同问题的人可以参考:
String strFilename = "Not set";
Intent intent = getIntent();
if(intent != null)
{
Uri uri = intent.getData();
if(uri != null)
{
strFilename = intent.getData().getPath();
String NameOfFile = intent.getDataString();
Toast.makeText(SplashActivity.this, "strFilename" + strFilename + "" + "Name of file is::" + NameOfFile, Toast.LENGTH_LONG).show();
System.out.println("strFileName::"+ strFilename );
System.out.println("NameOfFile::"+ NameOfFile );
try {
copyFile(strFilename,"/mnt/sdcard/Profile.swp");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
}
}
//copy file into other location
private void copyFile(String assetFilename, String outFileName ) throws IOException{
System.out.println("outFileName ::" + outFileName);
//Open your local db as the input stream
InputStream myInput = new FileInputStream(assetFilename);
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[2048];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}