Notice
Recent Posts
Recent Comments
Link
투케이2K
109. (AndroidStudio/android/java) 파일 이름을 사용해서 파일이 저장된 경로 확인 - File , Environment 본문
Android
109. (AndroidStudio/android/java) 파일 이름을 사용해서 파일이 저장된 경로 확인 - File , Environment
투케이2K 2021. 4. 21. 15:46/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//TODO ====== [AndroidManifest.xml 파일] ======
//TODO ==== 퍼미션 정의 부분 ====
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//TODO ==== application 부분 ====
android:requestLegacyExternalStorage="true"
//TODO ====== [안드로이드 파일명으로 경로 확인 메소드] ======
public String getFilePath(String name){
//TODO 리턴 변수 선언 실시
String returnData = "";
try {
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_File > getFilePath() 메소드 : 파일 경로 찾기 수행]");
Log.d("","\n"+"[파일명 : "+String.valueOf(name)+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
//TODO 사용자가 입력한 파일명에 확장자가 붙어있는지 확인
boolean file_extensionFlag = false;
String file_extensionArray[] = {
".bmp",".gif",".jpeg",".jpg",".png",".psd",".pic",
".raw",".tiff",".avi",".flv",".mkv",".mov",".mp3",
".mp4",".wav","wma",".doc",".docx",".html",".hwp",
".pdf",".txt",".exe",".zip"
};
//TODO for 반복문을 수행하면서 파일 확장자를 포함하는지 확인
for(int i=0; i<file_extensionArray.length; i++){
if(name.contains(file_extensionArray[i])){ //TODO 파일 확장자가 포함된 경우
file_extensionFlag = true;
break; //TODO for 문 탈출
}
}
if(file_extensionFlag == true){ //TODO 파일 확장자가 포함된 경우
//TODO 모바일 디렉토리 명을 배열에 담는다
File dir = Environment.getExternalStorageDirectory();
Queue<File> directoryFileList = new LinkedList<>();
//ArrayList<File> inFiles = new ArrayList<>();
directoryFileList.addAll(Arrays.asList(dir.listFiles()));
//TODO 파일 찾은 결과 값을 저장하기 위한 변수 선언
boolean fileContainsFlag = false;
//TODO 무한 루프를 돌면서 파일 찾기 실시 (저장된 디렉토리를 모두 검수할때까지 수행)
while(!directoryFileList.isEmpty()){
File file = directoryFileList.remove();
if(file.isDirectory()){
directoryFileList.addAll(Arrays.asList(file.listFiles()));
}
else {
//TODO 내가 찾을려는 파일 이름을 찾은 경우
if(file.getName().contains(name)){
//String tempPath = file.getParent() + File.separator + name;
String tempPath = file.getPath();
String checkName = "/"+name;
if(tempPath.contains(checkName) == false){
tempPath = tempPath.replace(name,checkName);
}
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_File > getFilePath() 메소드 : 파일 경로 찾기 성공]");
Log.d("","\n"+"[파일명 : "+String.valueOf(name)+"]");
Log.d("","\n"+"[경로 : "+String.valueOf(tempPath)+"]");
Log.d("","\n"+"[설명 : "+"파일 경로 확인을 성공했습니다"+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
fileContainsFlag = true; //TODO 파일 찾았다는 결과 저장
returnData = tempPath; //TODO 파일 경로 저장 실시
break; //TODO While 문 탈출
}
}
}
//TODO 파일을 못찾은 경우
if(fileContainsFlag == false){
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_File > getFilePath() 메소드 : 파일 경로 찾기 실패]");
Log.d("","\n"+"[파일명 : "+String.valueOf(name)+"]");
Log.d("","\n"+"[설명 : "+"파일을 찾지 못했습니다"+"]");
Log.e("//===========//","================================================");
Log.d("---","---");
}
}
else{ //TODO 파일 확장자가 포함되지 않은 경우
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_File > getFilePath() 메소드 : 파일 경로 찾기 실패]");
Log.d("","\n"+"[파일명 : "+String.valueOf(name)+"]");
Log.d("","\n"+"[설명 : "+"파일 확장자를 포함하지 않았습니다"+"]");
Log.e("//===========//","================================================");
Log.d("---","---");
}
}
catch (Exception e){
e.printStackTrace();
}
return returnData;
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments