私はWindowsでPythonコードを実行しており、すべてのファイル名とそのパスをファイルにトラバースして保存しようとしています。ただし、Windowsには260文字の制限があります。
os.chdir(self.config.Root_Directory_Path())
for root, dirs, files in os.walk("."):
file_list.extend( join(root,f) for f in files )
file_name_sorted = sorted(file_list)
#file_sorted = sorted(file_list, key=getsize)
#time.strftime("%m/%d/%Y %I:%M:%S %p" ,time.localtime(os.path.getmtime(file)))
f = open(self.config.Client_Local_Status(),'wb')
for file_name in file_name_sorted:
if (os.path.exists(file_name)):
#f.write((str(os.path.getmtime(file_name)) + "|" + file_name + "\n").encode('utf-8'))
pass
else:
print(file_name + "|" + str(len(file_name) + len(originalPath)) + "\n")
print(os.path.getmtime(file_name))
#f.write((str(os.path.getmtime(file_name)) + "|" + file_name + "\n").encode('utf-8'))
f.close()
エラーのため、os.path.getmtime(file_name)は、見つからない例外ファイルをスローします。どうすればこの問題を克服できますか?//?/文字をプレフィックスとして使用してみました。
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
しかし、//?/文字の使用には成功しませんでした。
os.path.getmtime( "////?//" + file_name)を使用してみました#エラーの無効なパスをスローしました
修正を提案してください