def mkdir(diretorio): if diretorio is None: print('mkdir precisa de um argumento') return try: dados, caminho_destino, nome_diretorio = pega_dados(diretorio) except FileNotFoundError: return if dados.tem(nome_diretorio): print('Já existe este diretório') return # É necessário o índice inicial ser alocado aqui, porque esse indice vai ser usado tanto como entrada no diretório # correspondente quanto como primeiro índice do bloco do arquivo copiado. index = aloca() # Adicionando o índice do primeiro bloco da sequencia do novo arquivo como entrada do diretório destino dados.add_entry(nome_diretorio, index) dados.save(unidade) # Criando um diretorio vazio com o indice adicionado na entrada do outro diretório dados = Dados(bitmap, fat, index) dados.mkdir(nome_diretorio) dados.save(unidade) # Em cada operação devemos salvar o estado dos metadados bitmap.save(unidade) fat.save(unidade) root.save(unidade)
def cat(arquivo): if arquivo is None: print('cat precisa de um argumento') return try: dados, caminho_destino, nome_arquivo = pega_dados(arquivo) except FileNotFoundError: return if dados.tem(nome_arquivo): index = dados.get_entry(nome_arquivo) dados = Dados(bitmap, fat, index) dados.load(unidade) print(dados.get_dado()) dados.save(unidade) bitmap.save(unidade) fat.save(unidade) root.save(unidade) pass
def touch(arquivo): if arquivo is None: print('touch precisa de um argumento') return try: dados, caminho_destino, nome_arquivo = pega_dados(arquivo) except FileNotFoundError: return if dados.tem(nome_arquivo): index = dados.get_entry(nome_arquivo) dados = Dados(bitmap, fat, index) dados.load(unidade) if dados.is_dir(): print('É um diretório!') return dados.get_dado() # com o get_dado eu estou atualizando o instante de acesso dados.save(unidade) else: index = aloca() dados.add_entry(nome_arquivo, index) dados.save(unidade) dados = Dados(bitmap, fat, index) dados.set(nome_arquivo, '') dados.save(unidade) bitmap.save(unidade) fat.save(unidade) root.save(unidade) pass
def touch(arquivo): if arquivo is None: print('touch precisa de um argumento') return try: dados, caminho_destino, nome_arquivo = pega_dados(arquivo) except FileNotFoundError: return if dados.tem(nome_arquivo): index = dados.get_entry(nome_arquivo) dados = Dados(bitmap, fat, index) dados.load(unidade) if dados.is_dir(): print('É um diretório!') return dados.get_dado( ) # com o get_dado eu estou atualizando o instante de acesso dados.save(unidade) else: index = aloca() dados.add_entry(nome_arquivo, index) dados.save(unidade) dados = Dados(bitmap, fat, index) dados.set(nome_arquivo, '') dados.save(unidade) bitmap.save(unidade) fat.save(unidade) root.save(unidade) pass
def cp(origem, destino): if origem is None: print('origem faltando') return if destino is None: print('destino faltando') return try: dados, caminho_destino, nome_destino = pega_dados(destino) except FileNotFoundError: return if nome_destino is None: _, nome_destino = parse_path(origem) if dados.tem(nome_destino): print('Este Arquivo já existe') return # É necessário o índice inicial ser alocado aqui, porque esse indice vai ser usado tanto como entrada no diretório # correspondente quanto como primeiro índice do bloco do arquivo copiado. index = aloca() # Adicionando o novo arquivo como entrada do diretório destino dados.add_entry(nome_destino, index) dados.save(unidade) # Criando um novo arquivo com o mesmo indice da entrada adicionado do diretório com os dados copiados do arquivo dados = Dados(bitmap, fat, index) file = open(origem) dados.set(nome_destino, file.read()) file.close() dados.save(unidade) # Em cada operação devemos salvar o estado dos metadados bitmap.save(unidade) fat.save(unidade) root.save(unidade)