Python を使用して、Windows 7 マシンにあるディレクトリをバックアップします。できるだけ圧縮する必要があります。どの方法で圧縮するかはまだ決めていません。
主な問題は、ディレクトリにカスケードされた数百のファイル/ディレクトリが含まれているため、合計255文字のパス+ファイル名の後に内部が表示されないことです。このディレクトリ構造は、サードパーティ ソフトウェアによって作成されます。
簡単なテストのために、フォルダー生成(シミュレートするため)について次のように記述しました。
start = time.time()
end = time.time() - start
root_dir = 'C:\test'
os.chdir("C:\test")
iterate = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while (end<1):
end = time.time() - start
os.system("mkdir " + str(iterate))
os.chdir(root_dir + "\\" + str(iterate))
root_dir = os.getcwd()
これで結果;
The filename or extension is too long.
Traceback (most recent call last):
File "folder_generate.py", line 21, in <module>
os.chdir(root_dir + "\\" + str(iterate))
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\Python27
\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUV
WXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQR
STUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMNOPQRSTUVWXYZ\\ABCDEFGHIJKLMN
OPQRSTUVWXYZ'
ここで別の質問で指摘されましたが、明確には答えられませんでした。
ディレクトリ コンテンツをウォークスルーするための簡単なテスト コードを取得しました。
fileList = []
fileSize = 0
folderCount = 0
rootdir = "c:\\test"
for root, subFolders, files in os.walk(rootdir):
folderCount += len(subFolders)
for file in files:
f = os.path.join(root,file)
fileSize = fileSize + os.path.getsize(f)
fileList.append(f)
print("Total Size is {0} bytes".format(fileSize))
print("Total Files ", len(fileList))
print("Total Folders", folderCount)
結果は ;
Total Size is 0 bytes
('Total Files ', 0)
('Total Folders', 9)
test フォルダー内のフォルダー数に関係なく。面白いことに、エクスプローラーを介して 9.folder の後に新しいフォルダーを参照して作成することができます。
私は wind0z にはあまり興味がないので、経験豊富なユーザーがこれを乗り越えるのを手伝ってくれれば幸いです。
非常に長いディレクトリをアーカイブするだけです。