%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2012. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. %% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. %% %% %CopyrightEnd% %% -module(archive_script_file_access). -behaviour(escript). -export([main/1]). -include_lib("kernel/include/file.hrl"). main(MainArgs) -> io:format("file_access:~p\n", [MainArgs]), ArchiveFile = escript:script_name(), AbsArchiveFile = filename:absname(ArchiveFile), RelArchiveFile = filename:basename(ArchiveFile), DotSlashArchiveFile = "./" ++ RelArchiveFile, Beam = atom_to_list(?MODULE) ++ ".beam", AbsBeam = filename:join(AbsArchiveFile,Beam), RelBeam = filename:join(RelArchiveFile,Beam), DotSlashBeam = filename:join(DotSlashArchiveFile,Beam), Dir = "dir1", AbsDir = filename:join(AbsArchiveFile,Dir), RelDir = filename:join(RelArchiveFile,Dir), DotSlashDir = filename:join(DotSlashArchiveFile,Dir), {ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile), {ok,List1} = erl_prim_loader:list_dir(RelArchiveFile), {ok,List1} = erl_prim_loader:list_dir(DotSlashArchiveFile), {ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile ++ "/"), {ok,List1} = erl_prim_loader:list_dir(AbsArchiveFile ++ "/."), {ok,List1} = erl_prim_loader:list_dir(filename:join([AbsDir,".."])), {ok,List1} = erl_prim_loader:list_dir(filename:join([RelDir,".."])), {ok,List1} = erl_prim_loader:list_dir(filename:join([DotSlashDir,".."])), false = lists:member([],List1), {ok,List2} = erl_prim_loader:list_dir(AbsDir), {ok,List2} = erl_prim_loader:list_dir(RelDir), {ok,List2} = erl_prim_loader:list_dir(DotSlashDir), false = lists:member([],List2), error = erl_prim_loader:list_dir(AbsBeam), error = erl_prim_loader:list_dir(RelBeam), error = erl_prim_loader:list_dir(DotSlashBeam), error = erl_prim_loader:get_file(AbsArchiveFile), error = erl_prim_loader:get_file(RelArchiveFile), error = erl_prim_loader:get_file(DotSlashArchiveFile), error = erl_prim_loader:get_file(AbsArchiveFile ++ "/"), error = erl_prim_loader:get_file(AbsArchiveFile ++ "/."), {ok,Bin,AbsBeam} = erl_prim_loader:get_file(AbsBeam), {ok,Bin,RelBeam} = erl_prim_loader:get_file(RelBeam), {ok,Bin,DotSlashBeam} = erl_prim_loader:get_file(DotSlashBeam), {ok,#file_info{type=directory}=DFI} = erl_prim_loader:read_file_info(AbsArchiveFile), {ok,DFI} = erl_prim_loader:read_file_info(RelArchiveFile), {ok,DFI} = erl_prim_loader:read_file_info(DotSlashArchiveFile), {ok,DFI} = erl_prim_loader:read_file_info(AbsArchiveFile ++ "/"), {ok,DFI} = erl_prim_loader:read_file_info(AbsArchiveFile ++ "/."), {ok,#file_info{type=regular}=RFI} = erl_prim_loader:read_file_info(AbsBeam), {ok,RFI} = erl_prim_loader:read_file_info(RelBeam), {ok,RFI} = erl_prim_loader:read_file_info(DotSlashBeam), F = AbsArchiveFile ++ ".extension", error = erl_prim_loader:list_dir(F), {ok,_,_} = erl_prim_loader:get_file(F), {ok,#file_info{type=regular}} = erl_prim_loader:read_file_info(F), ok.