在Android中构建新目录和推送文件
我知道我在我的另一个项目中使用了一些代码,用于创建一个新文件夹(如果它不存在),并将项目中的文件放入其中。但在我的新项目中,代码什么都不做。我做错了什么在Android中构建新目录和推送文件,android,Android,我知道我在我的另一个项目中使用了一些代码,用于创建一个新文件夹(如果它不存在),并将项目中的文件放入其中。但在我的新项目中,代码什么都不做。我做错了什么 File directory = new File(Environment.getExternalStorageDirectory() + File.separator + "testing"); directory.mkdirs(); File directory2 =
File directory = new File(Environment.getExternalStorageDirectory()
+ File.separator + "testing");
directory.mkdirs();
File directory2 = new File(Environment.getExternalStorageDirectory()
+ File.separator + "CandooData" + File.separator + "Meds");
if (!(directory2.isDirectory())) {
directory2.mkdirs();
}
File directory3 = new File(Environment.getExternalStorageDirectory()
+ File.separator + "CandooData" + File.separator + "Meds");
String[] files;
if (directory3.isDirectory()) {
files = directory3.list();
if (files.length == 0) {
// directory is empty
CopyAssets("medsxml", "/Meds");
}
}
使用这个目录.mkdir()而不是此目录.mkdirs() 使用这个目录.mkdir()而不是此目录.mkdirs()
我使用下面的方法创建目录并将文件保存到其中
private static File APP_FILE_PATH = new File("/sdcard/SpeechTutor");
p_file_Side_Slow = new File("/sdcard/SpeechTutor/P_SideMovieSlow.mp4");
p_file_Side_Medium = new File("/sdcard/SpeechTutor/P_SideMovieMedium.mp4");
p_file_Side_Fast = new File("/sdcard/SpeechTutor/P_SideMovieFast.mp4");
p_file_Front_Slow = new File("/sdcard/SpeechTutor/P_FrontMovieSlow.mp4");
p_file_Front_Medium = new File("/sdcard/SpeechTutor/P_FrontMovieMedium.mp4");
p_file_Front_Fast = new File("/sdcard/SpeechTutor/P_FrontMovieFast.mp4");
if((!(p_file_Side_Slow.exists())) || (!(p_file_Side_Medium.exists())) || (!(p_file_Side_Fast.exists()))
|| (!(p_file_Front_Slow.exists()))|| (!(p_file_Front_Medium.exists()))||(!(p_file_Front_Fast.exists()))){
ArrayList<String> files = new ArrayList<String>();
files.add("P_SideMovieSlow.mp4");
files.add("P_SideMovieMedium.mp4");
files.add("P_SideMovieFast.mp4");
files.add("P_FrontMovieSlow.mp4");
files.add("P_FrontMovieMedium.mp4");
files.add("P_FrontMovieFast.mp4");
new myAsyncTask().execute(files);
}
// AsyncTass for the Progress Dialog and to do Background Process
private class myAsyncTask extends AsyncTask<ArrayList<String>, Void, Void> {
ArrayList<String> files;
ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(MainScreenActivity.this, "Speech Tutor", "Loading...");
}
@Override
protected Void doInBackground(ArrayList<String>... params) {
files = params[0];
for (int i = 0; i < files.size(); i++) {
copyFileFromAssetsToSDCard(files.get(i));
} return null;
}
@Override
protected void onPostExecute(Void result) {
dialog.dismiss();
// myVideoThumbnail.setImageBitmap((Bitmap)ThumbnailUtils.createVideoThumbnail(p_file_Side_Slow.getAbsolutePath(),MediaStore.Video.Thumbnails.MINI_KIND));
// myVideoView.setVideoURI(p_uri_Side_Medium);
setVideoURI(sideShow, frontshow, slowShow, mediumShow, fastShow);
}
}
// Function to copy file from Assets to the SDCard
public void copyFileFromAssetsToSDCard(String fileFromAssets){
AssetManager is = this.getAssets();
InputStream fis;
try {
fis = is.open(fileFromAssets);
FileOutputStream fos;
if (!APP_FILE_PATH.exists()) {
APP_FILE_PATH.mkdirs();
}
fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/SpeechTutor",fileFromAssets));
byte[] b = new byte[8];
int i;
while ((i = fis.read(b)) != -1) {
fos.write(b, 0, i);
}
fos.flush();
fos.close();
fis.close();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
私有静态文件APP\u File\u PATH=新文件(“/sdcard/SpeechTutor”);
p_file_Side_Slow=新文件(“/sdcard/SpeechTutor/p_SideMovieSlow.mp4”);
p_file_Side_Medium=新文件(“/sdcard/SpeechTutor/p_sidemoviemedia.mp4”);
p_file_Side_Fast=新文件(“/sdcard/SpeechTutor/p_SideMovieFast.mp4”);
p_file_Front_Slow=新文件(“/sdcard/SpeechTutor/p_FrontMovieSlow.mp4”);
p_file_Front_Medium=新文件(“/sdcard/SpeechTutor/p_frontmoviemedia.mp4”);
p_file_Front_Fast=新文件(“/sdcard/SpeechTutor/p_FrontMovieFast.mp4”);
如果(!(p_文件_端_慢.存在())| |(!(p_文件_端_中.存在())|(!(p_文件_端_快.存在()))
||(!(p_file_Front_Slow.exists())| |(!(p_file_Front_Medium.exists())|(!(p_file_Front_Fast.exists())){
ArrayList files=新的ArrayList();
添加(“P_SideMovieSlow.mp4”);
添加(“P_sidemoviemedia.mp4”);
添加(“P_SideMovieFast.mp4”);
添加(“P_FrontMovieSlow.mp4”);
添加(“P_frontmoviemedia.mp4”);
添加(“P_FrontMovieFast.mp4”);
新建myAsyncTask().execute(文件);
}
//用于进度对话框和待办事项后台进程的异步
私有类myAsyncTask扩展了AsyncTask{
ArrayList文件;
进程对话;
@凌驾
受保护的void onPreExecute(){
dialog=ProgressDialog.show(MainScreenActivity.this,“语音导师”,“加载…”);
}
@凌驾
受保护的Void doInBackground(ArrayList…params){
files=params[0];
对于(inti=0;i
以上所有代码都将文件保存为后台进程。我使用下面的方法创建目录并将文件保存到其中
private static File APP_FILE_PATH = new File("/sdcard/SpeechTutor");
p_file_Side_Slow = new File("/sdcard/SpeechTutor/P_SideMovieSlow.mp4");
p_file_Side_Medium = new File("/sdcard/SpeechTutor/P_SideMovieMedium.mp4");
p_file_Side_Fast = new File("/sdcard/SpeechTutor/P_SideMovieFast.mp4");
p_file_Front_Slow = new File("/sdcard/SpeechTutor/P_FrontMovieSlow.mp4");
p_file_Front_Medium = new File("/sdcard/SpeechTutor/P_FrontMovieMedium.mp4");
p_file_Front_Fast = new File("/sdcard/SpeechTutor/P_FrontMovieFast.mp4");
if((!(p_file_Side_Slow.exists())) || (!(p_file_Side_Medium.exists())) || (!(p_file_Side_Fast.exists()))
|| (!(p_file_Front_Slow.exists()))|| (!(p_file_Front_Medium.exists()))||(!(p_file_Front_Fast.exists()))){
ArrayList<String> files = new ArrayList<String>();
files.add("P_SideMovieSlow.mp4");
files.add("P_SideMovieMedium.mp4");
files.add("P_SideMovieFast.mp4");
files.add("P_FrontMovieSlow.mp4");
files.add("P_FrontMovieMedium.mp4");
files.add("P_FrontMovieFast.mp4");
new myAsyncTask().execute(files);
}
// AsyncTass for the Progress Dialog and to do Background Process
private class myAsyncTask extends AsyncTask<ArrayList<String>, Void, Void> {
ArrayList<String> files;
ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(MainScreenActivity.this, "Speech Tutor", "Loading...");
}
@Override
protected Void doInBackground(ArrayList<String>... params) {
files = params[0];
for (int i = 0; i < files.size(); i++) {
copyFileFromAssetsToSDCard(files.get(i));
} return null;
}
@Override
protected void onPostExecute(Void result) {
dialog.dismiss();
// myVideoThumbnail.setImageBitmap((Bitmap)ThumbnailUtils.createVideoThumbnail(p_file_Side_Slow.getAbsolutePath(),MediaStore.Video.Thumbnails.MINI_KIND));
// myVideoView.setVideoURI(p_uri_Side_Medium);
setVideoURI(sideShow, frontshow, slowShow, mediumShow, fastShow);
}
}
// Function to copy file from Assets to the SDCard
public void copyFileFromAssetsToSDCard(String fileFromAssets){
AssetManager is = this.getAssets();
InputStream fis;
try {
fis = is.open(fileFromAssets);
FileOutputStream fos;
if (!APP_FILE_PATH.exists()) {
APP_FILE_PATH.mkdirs();
}
fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/SpeechTutor",fileFromAssets));
byte[] b = new byte[8];
int i;
while ((i = fis.read(b)) != -1) {
fos.write(b, 0, i);
}
fos.flush();
fos.close();
fis.close();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
私有静态文件APP\u File\u PATH=新文件(“/sdcard/SpeechTutor”);
p_file_Side_Slow=新文件(“/sdcard/SpeechTutor/p_SideMovieSlow.mp4”);
p_file_Side_Medium=新文件(“/sdcard/SpeechTutor/p_sidemoviemedia.mp4”);
p_file_Side_Fast=新文件(“/sdcard/SpeechTutor/p_SideMovieFast.mp4”);
p_file_Front_Slow=新文件(“/sdcard/SpeechTutor/p_FrontMovieSlow.mp4”);
p_file_Front_Medium=新文件(“/sdcard/SpeechTutor/p_frontmoviemedia.mp4”);
p_file_Front_Fast=新文件(“/sdcard/SpeechTutor/p_FrontMovieFast.mp4”);
如果(!(p_文件_端_慢.存在())| |(!(p_文件_端_中.存在())|(!(p_文件_端_快.存在()))
||(!(p_file_Front_Slow.exists())| |(!(p_file_Front_Medium.exists())|(!(p_file_Front_Fast.exists())){
ArrayList files=新的ArrayList();
添加(“P_SideMovieSlow.mp4”);
添加(“P_sidemoviemedia.mp4”);
添加(“P_SideMovieFast.mp4”);
添加(“P_FrontMovieSlow.mp4”);
添加(“P_frontmoviemedia.mp4”);
添加(“P_FrontMovieFast.mp4”);
新建myAsyncTask().execute(文件);
}
//用于进度对话框和待办事项后台进程的异步
私有类myAsyncTask扩展了AsyncTask{
ArrayList文件;
进程对话;
@凌驾
受保护的void onPreExecute(){
dialog=ProgressDialog.show(MainScreenActivity.this,“语音导师”,“加载…”);
}
@凌驾
受保护的Void doInBackground(ArrayList…params){