2011-10-06 3 views
2

내부 메모리에 저장된 파일을 삭제하려고합니다. 파일은안드로이드 장치에서 내부 메모리의 파일을 삭제 하시겠습니까?

activity.deleteFile(filename); 

으로 삭제되지만 에뮬레이터에서만 삭제됩니다. 실제 장치에서이 메서드는 항상 false를 반환합니다. adb 셸에서 파일에 액세스하려고하면 표시 권한이 거부됩니다. 그래서, 거기에 내부 메모리에있는 파일을 삭제하는 권한 관련 문제가있는 것 같아요.

누군가 내게 안드로이드의 내부 메모리에서 파일을 실제로 지우는 방법을 알려줄 수 있습니까?

+0

가이 파일을 만들나요 .. 그 코드에 의해 해결되었다? 어떤 코드를 사용하여 만들었습니까? 기기에서 읽을 수 있거나 액세스 할 수 있습니까? – FoamyGuy

+0

파일에 경로 게시 – Caner

+0

/data/data/packagename/files/filename.txt – sunil

답변

4

파일 시스템의 모든 파일에 대해 이야기하고 있다면 ... 작업?

if (new File("fileUrl").delete()) { 
    // Deleted 
} else { 
    // Not deleted 
} 
+0

파일 커얼은 무엇입니까? – sunil

+0

보안 제약으로 인해 앱에서 만든 파일에만 액세스/수정/삭제할 수 있습니다. 그렇지 않으면 자신의 파일에 액세스 할 때 코드가 정상입니다. –

+0

@sunil fileUrl은 문제의 파일의 경로 일뿐입니다. –

4

으로 인해 앱에서 만든 파일 만 삭제할 수 있습니다. 또한 응용 패키지 (apk)의 일부인 파일 (예 : /res, /assets 등)을 삭제할 수 없습니다.

+0

분명히 동일한 응용 프로그램에서 만든 파일을 삭제하려고합니다. 다른 앱에서 만든 파일을 삭제하려고하지 않습니다. – sunil

+0

해당 파일의 경로가 있습니까? 그럼 그냥'(새 파일 ("path/to/file"). delete())' –

+0

File dir = context.getFilesDir();을 사용하고 있습니다. 파일 file = 새 파일 (dir, filename); file.delete(); – sunil

0

당신은 사용해야

_context.openFileOutput(fileName, Context.MODE_WORLD_READABLE); 

파일 여기

3

를 작성할 때 파일 이름이 파일 이름은 경로를 포함하지 않아야 의미 separator.that 삭제하고 경로없이 할 파일의 이름입니다 "/"와 같은 구분 기호. 그리고 응용 프로그램에서 파일을 만들어야합니다. 내 문제는

if(getApplicationContext().deleteFile(FileName)) { Toast.makeText(getApplicationContext(),"File Deleted",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(),"Not Deleted",Toast.LENGTH_SHORT).show(); }

관련 문제