通過乙個簡單檔案系統目錄結構的模擬設計,加深了解檔案系統的功能和實現
實驗預備內容
複習資料結構中的樹型結構。熟悉樹節點的插入、刪除、修改以及樹的遍歷方法。
實驗內容
編寫一段程式,模擬實現乙個簡單檔案系統的樹型目錄結構,實現以下命令:
命令名 功能 格式
create 建立檔案 create filename size
md 建立目錄 md directoryname
delete 刪除檔案 delete filename
rd 刪除目錄 rd directoryname
cd 改變檔案當前目錄 cd directoryname
返回上一級目錄 cd…
dir 列檔案目錄 dir
dirall 列出全體檔案目錄(含子目錄) dirall
python|頁面置換模擬程式設計
python|銀行家演算法
python|獨佔裝置的分配和**模擬
python|模擬檔案系統
python|程序排程演算法
python|分頁管理方式下儲存分配情況模擬
python|windows下實現經典程序同步問題——理髮師問題
python|模擬實現動態分割槽儲存管理
class
folder
:def
__init__
(self, father, name)
:'''
:param father: 上級目錄
:param name: 目錄名稱
'''self.father = father
self.name = name
# 目錄列表
self.folder =
# 檔案列表
self.
file=[
]root = folder(father=
none
, name=
'root'
)cur = root
path =
'root'
defcreate
(name, size)
:# 建立檔案
global cur
if name in cur.
file
:return
print
('存在同名檔案,新建檔案失敗!'
) cur.
file
)return
print
('新建檔案成功!'
)def
md(name)
:# 建立目錄
global cur, path
if name in cur.folder:
return
print
('存在同名資料夾,新建資料夾失敗!'
) folder = folder(father=cur, name=name)
return
print
('新建資料夾成功!'
)def
delete
(name)
:# 刪除檔案
global cur
for i in cur.
file
:for key, value in i.items():
if key == name:
cur.
file
.pop(cur.
file
.index(i)
)return
print
('刪除檔案成功!'
)return
print
('檔案不存在,刪除檔案失敗!'
)def
rd(name)
:# 刪除目錄
global cur
for i in cur.folder:
if i.name == name:
cur.folder.pop(cur.folder.index(i)
)return
print
('刪除資料夾成功!'
)return
print
('資料夾不存在,刪除資料夾失敗!'
)def
cd(name)
:# 改變當前目錄
global cur, path
if name ==
'..'
:if cur.father !=
none
: path = path[:(
len(path)
-len
(cur.name))-
1]cur = cur.father
else
:for i in cur.folder:
if i.name == name:
cur = i
path = path +
'/'+ name
return
return
print
('找不到指定資料夾!'
)def
dir():
# 列檔案目錄
global cur
for i in cur.
file
:for key, value in i.items():
print
(key, value)
defdirall()
:# 列出全體檔案目錄
global cur
dir()
for i in cur.folder:
print
(' '
, i.name)
if __name__ ==
'__main__'
:while
true
:print
(path, end=
'>'
) order =
input()
.split(
' ')
if order[0]
=='create'
:try
: create(order[1]
, order[2]
)except
:print
('格式錯誤:create filename size'
)elif order[0]
=='md'
:try
: md(order[1]
)except
:print
('格式錯誤:md filename'
)elif order[0]
=='delete'
:try
: delete(order[1]
)except
:print
('格式錯誤:delete filename'
)elif order[0]
=='rd'
:try
: rd(order[1]
)except
:print
('格式錯誤:rd directoryname'
)elif order[0]
=='cd'
:try
: cd(order[1]
)except
:print
('格式錯誤:cd directoryname/cd ..'
)elif order[0]
=='dir'
:dir()
elif order[0]
=='dirall'
: dirall(
)else
:print
('{}不是正確的命令'
.format
(order[0]
))
linux檔案系統模擬
include stdio.h include include include include unistd.h int physic 100 檔案位址緩衝區 int style 1 檔案的型別 char cur dir 10 root 當前目錄 struct command cmd 12 stru...
linux檔案系統模擬
include stdio.h include include include include unistd.h intphysic 100 檔案位址緩衝區 intstyle 1 檔案的型別 charcur dir 10 root 當前目錄 structcommand cmd 12 structbl...
python 檔案系統
python的檔案系統 跟python的檔案相關的十分有用的模組 1 模組的概念 每乙個源 檔案 py 都是乙個模組 2 python自帶的實用模組 1 random模組的randint 函式生成隨機數,不可直接呼叫,需要import語句匯入模組,然後再使用 import random random...