Rebol3 Code Examplex
File extension is in extensions list
Given an arbitrary filename and a list of extensions, tell whether the filename has one of those extensions.
Rebol [
title: "Rosetta code: File extension is in extensions list"
file: %File_extension_is_in_extensions_list.r3
url: https://rosettacode.org/wiki/File_extension_is_in_extensions_list
]
known-extensions: map-each ext [
"zip" "rar" "7z" "gz" "archive" "a##" "tar.bz2"
][
join "." ext ;; prefix each extension with a dot
]
known-extension?: function [
"True if the file's lowercase extension is in the known extensions list."
file [string! file!]
][
foreach ext known-extensions [
if find/match/last file ext [ return true ]
]
false
]
print [as-yellow "Known extensions:" known-extensions]
foreach file [
%MyData.a## %MyData.tar.Gz %MyData.gzip
%MyData.7z.backup %MyData... %MyData
%MyData_v1.0.tar.bz2 %MyData_v1.0.bz2
][
printf [20 "--> "] [file known-extension? file]
]Output:
Known extensions: .zip .rar .7z .gz .archive .a## .tar.bz2
MyData.a## --> true
MyData.tar.Gz --> true
MyData.gzip --> false
MyData.7z.backup --> false
MyData... --> false
MyData --> false
MyData_v1.0.tar.bz2 --> true
MyData_v1.0.bz2 --> false