편집 기록

편집 기록
  • 프로필 김대동님의 편집
    날짜2018.06.21

    안드로이드에서 sd카드 특정폴더에 쓰는 방법.


    아래는 제 서버에서 파일을 다운 받는 코드인데요. 다운 받는 파일을 sd카드의 루트 디렉토리에 쓰는데 잘 동작하긴 해요!

    package com.downloader;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import android.os.Environment;
    import android.util.Log;
    
    public class Downloader {
    
        public void DownloadFile(String fileURL, String fileName) {
            try {
                File root = Environment.getExternalStorageDirectory();
                URL u = new URL(fileURL);
                HttpURLConnection c = (HttpURLConnection) u.openConnection();
                c.setRequestMethod("GET");
                c.setDoOutput(true);
                c.connect();
                FileOutputStream f = new FileOutputStream(new File(root, fileName));
    
                InputStream in = c.getInputStream();
    
                byte[] buffer = new byte[1024];
                int len1 = 0;
                while ((len1 = in.read(buffer)) > 0) {
                    f.write(buffer, 0, len1);
                }
                f.close();
            } catch (Exception e) {
                Log.d("Downloader", e.getMessage());
            }
    
        }
    }
    

    근데 Environment.getExternalStorageDirectory();를 쓰면 파일이 항상 루트 폴더 즉, /mnt/sdcard 여기에다 써지는데 혹시 특정 폴더에 파일을 쓰는것도 가능한가요? 예를 들어서 /mnt/sdcard/myapp/downloads 이런식으로요

  • 프로필 박동수님의 편집
    날짜2016.06.06

    안드로이드에서 sd카드 특정폴더에 쓰는 방법.


    아래는 제 서버에서 파일을 다운 받는 코드인데요. 다운 받는 파일을 sd카드의 루트 디렉토리에 쓰는데 잘 동작하긴 해요!

    package com.downloader;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import android.os.Environment;
    import android.util.Log;
    
    public class Downloader {
    
        public void DownloadFile(String fileURL, String fileName) {
            try {
                File root = Environment.getExternalStorageDirectory();
                URL u = new URL(fileURL);
                HttpURLConnection c = (HttpURLConnection) u.openConnection();
                c.setRequestMethod("GET");
                c.setDoOutput(true);
                c.connect();
                FileOutputStream f = new FileOutputStream(new File(root, fileName));
    
                InputStream in = c.getInputStream();
    
                byte[] buffer = new byte[1024];
                int len1 = 0;
                while ((len1 = in.read(buffer)) > 0) {
                    f.write(buffer, 0, len1);
                }
                f.close();
            } catch (Exception e) {
                Log.d("Downloader", e.getMessage());
            }
    
        }
    }
    

    근데 Environment.getExternalStorageDirectory();를 쓰면 파일이 항상 루트 폴더 즉, /mnt/sdcard 여기에다 써지는데 혹시 특정 폴더에 파일을 쓰는것도 가능한가요? 예를 들어서 /mnt/sdcard/myapp/downloads 이런식으로요