2013-04-05 28 views
5

Tôi không thể để có được những phương pháp để tạo thư mục trong Internal Memory,Tạo thư mục trong Bộ nhớ trong

tôi trải qua vài cuộc hội thoại trong Android create folders in Internal MemoryProblem facing in reading file from Internal memory of android. Nhưng tôi vẫn không thể đáp ứng yêu cầu của tôi.

Yêu cầu của tôi là, tôi muốn tạo thư mục trong Bộ nhớ trong, ở đó tôi muốn Lưu trữ một video.

Cảm ơn bạn rất nhiều trước vì những phản hồi có giá trị.

Trả lời

16

thử dưới đây

File mydir = context.getDir("users", Context.MODE_PRIVATE); //Creating an internal dir; 
if (!mydir.exists()) 
{ 
    mydir.mkdirs(); 
}  
+5

Tôi nghĩ rằng kiểm tra nếu tồn tại là không cần thiết ở đây. Dựa trên tài liệu: "Thư mục sẽ được tạo nếu nó chưa tồn tại." – Paul

+1

nếu (! Mydir.exists) nên là ** if (! Mydir.exists()) ** –

+0

làm cách nào để bạn thêm tệp vào thư mục cụ thể này? –

6

Đây là mã mà tôi đang sử dụng để tạo tập tin trong bộ nhớ trong:

File myDir = context.getFilesDir(); 
    // Documents Path 
    String documents = "documents/data"; 
    File documentsFolder = new File(myDir, documents); 
    documentsFolder.mkdirs(); // this line creates data folder at documents directory 

    String publicC = "documents/public/api." + server; 
    File publicFolder = new File(myDir, publicC); 
    publicFolder.mkdirs(); // and this line creates public/api.myservername folder in internal memory 
+0

Bạn không có đầu mối bao lâu tôi đã được tìm kiếm cho việc này. Mỗi lần tôi thử nó sẽ tạo ra tập tin bên ngoài thư mục tập tin và nó sẽ nối thêm "app_" vào thư mục. 1 Từ tôi cho giải pháp xuất sắc, nhỏ và thiết thực. –

0

Có một "cacheDirectory" trong "dữ liệu/package_name" thư mục của bạn.

Nếu bạn muốn lưu trữ một cái gì đó ở chỗ bộ nhớ cache,

File cacheDir = new File(this.getCacheDir(), "temp"); 
if (!cacheDir.exists()) 
    cacheDir.mkdir(); 

nơi đây là bối cảnh.

1

Để tạo thư mục trên điện thoại dung lượng bộ nhớ chính (bộ nhớ nói chung nội bộ), bạn nên sử dụng sau mã. Xin lưu ý rằng ExternalStorage trong Environment.getExternalStorageDirectory() không nhất thiết phải đề cập đến sdcard, nó sẽ trả về dung lượng bộ nhớ điện thoại chính

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName"); 

if (!mediaStorageDir.exists()) { 
    if (!mediaStorageDir.mkdirs()) { 
     Log.d("App", "failed to create directory"); 
     return null; 
    } 
} 

thư mục được tạo ra sử dụng mã này sẽ hiển thị cho người sử dụng điện thoại. Phương thức khác (như trong câu trả lời được chấp nhận) tạo thư mục ở vị trí (/data/data/package.name/app_MyDirName), do đó người dùng điện thoại bình thường sẽ không thể truy cập dễ dàng và do đó bạn không nên sử dụng nó để lưu trữ video/ảnh vv

Bạn sẽ cần quyền, trong AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 
+0

** FALSE AND MISLEADING ** - không có sự cho phép nào như android.permission.WRITE_INTERNAL_STORAGE –

+0

câu trả lời này là từ tháng 5 năm 2016, vui lòng kiểm tra sự cho phép này với phiên bản Android được sử dụng thời gian đó. Phiên bản Android thay đổi để thực hiện quyền của họ. Nó sẽ hoạt động trong Android 5.0 – prodev

+0

** FALSE AGAIN **. Có ** không bao giờ ** được như vậy ** nội bộ ** lưu trữ cho phép - thậm chí đề nghị nó là để phản bội một sự hiểu lầm sâu sắc và cơ bản của hệ thống tập tin android. Thực tế thực tế là các ứng dụng luôn có quyền ** thư mục lưu trữ nội bộ ** của riêng chúng. –

Các vấn đề liên quan