투케이2K

373. (ios/swift5) [유틸 파일] externalFileDirectoryCreate : 앱 파일 저장소 특정 경로 폴더 생성 - FileManager createDir 본문

IOS

373. (ios/swift5) [유틸 파일] externalFileDirectoryCreate : 앱 파일 저장소 특정 경로 폴더 생성 - FileManager createDir

투케이2K 2023. 11. 11. 16:04
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // MARK: - [앱 파일 저장소 특정 경로 폴더 생성 수행]
    // -----------------------------------------------------------------------------------------
    func externalFileDirectoryCreate(folderName: String) -> Bool {
        
        /*
        // -----------------------------------------
        [externalFileDirectoryCreate 메소드 설명]
        // -----------------------------------------
        1. 앱 파일 저장소 특정 경로 폴더 생성 수행
        // -----------------------------------------
        2. 호출 방법 : C_App().externalFileDirectoryCreate(folderName: "TWOK")
        // -----------------------------------------
        3. 리턴 반환 :

         앱 특정 경로에 폴더를 정상적으로 생성한 경우 true , 아니면 false
        // -----------------------------------------
        4. 참고 info plist 설정 :
         
         아이폰 파일 접근 설정 : Supports opening documents in place : YES
         아이튠즈 공유 설정 : Application supports iTunes file sharing : YES
        // -----------------------------------------
        */

        
        // [리턴 변수 선언]
        var returnData = false
        var M_LOG = ""


        // [로직 처리 실시]
        if C_Util().stringNotNull(str: folderName) == true {
            
            let fileManager = FileManager.default // 파일 매니저 선언
            let documentsUrl =  fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! // 기본 경로 확인
            
            // [파일 경로 + 폴더 명칭 설정 실시]
            let fileSavePath = documentsUrl.appendingPathComponent(folderName) // 실제 저장되는 경로

            // [파일 경로가 존재하는지 체크 실시]
            if FileManager.default.fileExists(atPath: fileSavePath.path) == false { // 저장 된 경로 없음 >> 폴더 생성 실시
                do {
                    
                    // [디렉토리 생성 실시]
                    try FileManager.default.createDirectory(atPath: fileSavePath.path, withIntermediateDirectories: true, attributes: nil)
                    
                    returnData = true // 리턴 값 삽입
                    
                    M_LOG = "[Success] :: File Directory Create :: \(fileSavePath)"
                    
                } catch {
                    M_LOG = "[Exception] :: \(error.localizedDescription)"
                }
            }
            else {
                M_LOG = "[Success] :: File Directory Exists"
            }

        }
        else {
            M_LOG = "[ERROR] :: Input Data Is Null"
        }

        
        // [로그 출력 실시]
        S_Log._D_(description: "앱 파일 저장소 특정 경로 폴더 생성 수행", data: [
            "INPUT :: \(folderName)",
            "M_LOG :: \(M_LOG)",
            "RETURN :: \(returnData)"
        ])
        
        
        // [리턴 데이터 반환 실시]
        return returnData
    }
 

[결과 출력]

 

 

반응형
Comments