Golang에서는 디렉토리가 크로스 플랫폼 방식으로 쓰기 가능한지 확인하려면 `os.FileMode`를 사용하여 이를 달성할 수 있습니다. 먼저 `os.Stat` 함수를 통해 해당 디렉터리의 파일 정보를 얻습니다. 그런 다음 `file.Mode().Perm()` 메서드를 사용하여 파일 권한을 얻습니다. 마지막으로 `file.Mode().IsDir()` 메서드를 사용하여 디렉터리인지 확인합니다. 디렉토리의 권한이 '0777'이면 쓰기 가능하다는 의미이고, 권한이 '0444' 또는 '0555'이면 읽기 전용임을 의미하고, 권한이 다른 값이면 쓸 수 없음을 의미합니다. . 이 방법은 크로스 플랫폼 디렉터리 쓰기 가능성 검사에 적합합니다.
golang을 사용하여 디렉터리에 파일을 쓰려는 프로그램이 있습니다. Macos, Linux 및 Windows에서 작동하려면 (적어도) 필요합니다.
golang은 다음 테스트를 제공합니다. 하지만 이는 Linux에만 국한된 것 같습니다(아래 링크된 so 질문에서 확인):
으아악이 답변 [1]을 보았지만 이 질문은 10년이 지났습니다. 조건부 컴파일보다 이를 수행하는 더 좋은 방법이 있습니까?
요약: go 프로세스가 특정 디렉토리에 쓸 수 있는지 확인하고 싶습니다.
[1] 폴더가 존재하고 쓰기 가능한지 어떻게 확인하나요?
운영 체제마다 권한과 권한이 다를 수 있으므로 조건부 컴파일 없이 목표를 달성한 방법입니다.
os.createtemp
를 사용해 보았습니다. 함수가 오류를 반환하지 않으면 경로나 권한에 문제가 없으며 해당 디렉터리에 파일을 만들 수 있습니다. 코드입니다
으아악위 내용은 Golang에서 디렉토리에 쓸 수 있는지 확인하는 크로스 플랫폼 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!