문제

나는 현재 사용하여 파일::Basename fileparse 을 분리하는 파일의 디렉터,베이스 파일 이름의 확장자가 있는 것을 사용하여 다음과 같다:

my($myfile_name,$mydirectory, $file_extension) = fileparse($$rhash_params{'storage_full_path_location'},'\..{1,4}');

그러나 볼 수 있다는 변동할 수 있는 실제로 제공하는 배열의 접미사는 함수,배열이 모두 포함 알려진 파일 확장자가 있습니다.

그래서 나를 찾으려고 안전한 방법으로 이것을 보았는데 그 어떤 이상한 파일의 이름을 처리,즉file.0f1.htm 니다,등등.

질문:

  1. 이 있는 목록의 일반적으로 사용되는 extension for Unix 및 윈도우 시스템의 차이점은 무엇입니까?하지만 제 경우에 그것은 주로 for Windows.
  2. 그리고 안전 가정 하는 모든 파일 이름에서 Windows 있어야 합 확장 으로 끝나는 세 개의 문자는?

고 있는 경우에는 더 나은 방식으로 이렇게하려면,공유하시기 바랍니다.

감사합니다.

업데이트:

그렇게 분명히 나는 술에 취해 있을 잊고 그는 다른 확장자.:) 따라서 업데이트 현재 regex 에서 허용하는 1-4chars.

이 경우에는 어떻게 변경 내 정규 표현식 라인을 제대로 맞?나 그것은 더 나은 아이디어를 찾는 모든 사람들을 위해 일반적으로 사용되는 확장자가 google 에서들을 배열로 전달할 기능을 대신?내 사용자가 일반적으로 하는 학생이나 교사입니다.

도움이 되었습니까?

해결책

1.이 있는 목록의 일반적으로 사용되는 확장자를 위한 윈도우와 유닉 시스템의 차이점은 무엇입니까?하지만 제 경우에 그것은 주로 for Windows.

예,로드 인터넷: http://www.google.com/search?q=common+file+extensions

2.그리고 안전하다고 추정하는 모든 파일 이름에서 윈도우야 의 확장으로 끝나는 세 letter 자?

아니,그것은 완벽하게 이용 가능 '.c', '.java', 등 in Windows.

다른 팁

거기에 여러 가지 잘못 가정에서 당신의 코드:

  • 파일이 필요하지 않는 확장 합니다.예를 들면 가장 큰 바이너리 파일에서 Unix/Linux/...지 않는 확장자를 가지고 있다.그들은 단순히 통화"bash","wget","sed","Xorg",...
  • 확장이 필요하지 않 세 자로@스타 알니타크 이미 말했:".c",".java",".mpeg",".jpeg",".html"는 모두 완벽하게 괜찮다고 오히려한 확장
  • 절단 마지막에"."아버지만,여전히 실패한 없이 파일 확장자와 함께 또는 여러(또는 멀티-부분)등의 확장 프로그램".tar.gz","tar.bz2"발생하는 오히려주에서 Unix/Linux/...세계
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top