crftwr / cfiler Goto Github PK
View Code? Open in Web Editor NEWpython based file commander
License: MIT License
python based file commander
License: MIT License
======================================================== Pythonスクリプトで拡張可能な2画面ファイラ [ 内骨格 ] ======================================================== :著作者: craftware :連絡先: [email protected] :種別: フリーウェア :動作環境: Windows 10 64bit :Webサイト: http://sites.google.com/site/craftware/ 使い方 ========================= 使い方については、doc/index.html を参照してください。 ビルド方法 ========================= 必要なレポジトリをチェックアウト cfiler ckit pyauto Python (64bit版) を c:/Python38-64 にインストール Pillow をインストール:: pip install pillow VisualStudio 2019 で、Native モジュールをビルド ckit/ckitcore/ckitcore.sln pyauto/pyauto.sln cfiler/cfiler_native/cfiler_native.sln cfiler/cfiler.sln デバッグ実行 (cmd.exe などで下記を実行):: cfiler_d.exe -d リリースパッケージビルド:: python makefile.py
ファイルの削除時に以下のエラーが出てファイルが削除できない。
ごみ箱に投棄 :
ファイル : C:/Users/wildlarva/Downloads\Q631YSTR001201901070923141.pdf
Traceback (most recent call last):
File "../ckit\ckit_threadutil.py", line 231, in run
File ".\cfiler_mainwindow.py", line 3307, in jobDelete
File "../ckit\ckit_misc.py", line 410, in deleteFilesUsingRecycleBin
ValueError: embedded null character
Done.
以下の箇所においてctypes.c_wchar_p
に"\0"
の文字列を設定している。
ckit_misc.py
def deleteFilesUsingRecycleBin( hwnd, filename_list ):
...
joint_filenames = ""
for filename in filename_list:
filename = filename.replace("/","\\")
joint_filenames += filename
joint_filenames += '\0'
joint_filenames += '\0'
...
fileopdata.pFrom = joint_filenames
...
pythonの以下のバグにより本箇所がエラーとなっている可能性がある。
https://bugs.python.org/issue32745
ファイルの種類、属性での色分けができるようにして欲しい
ルートディレクトリへのファイルコピーが失敗することがある。
(USBメモリなどで発生?HDDでは起きなかった。)
軽微な問題ではありますが、C:\などルートへファイルをコピーしようとすると失敗するようなのでご報告させていただきます。
os.makedirs にルートが渡されるとフォルダがすでに存在する場合とは違う例外が投げられることが原因なようで、
cfiler_filelist.lister_LocalFS.getCopyDst 内の当該関数呼び出しをコピー先がルートの場合は回避することで、当方の環境では今のところ問題なく動作しております。
複数のCfilerでiniファイルを上書きしあわないような工夫。
履歴などが消えてしまわないように。
自分が読み込んだiniファイルのタイムスタンプを覚えておき、
書き出すときに、必要に応じてマージするとよいかも。
あるいは、別のファイルに書き出しておき、読み出すときに
複数のファイルを読み出すといいかも。
コマンドライン(x)にてNetworkPlaceTestと打ちこむとname 'args' is not defined
と表示され使用できません。
おそらくここでinfoを通さずにargsを取ろうとしているためだと思われます。
Line 6307 in 19f0e23
danbo-amazon-wallpaper.jpg がデコードできないことがある。
壁紙に設定するのも失敗してしまう。
もしかしたら、JPEGデコーダが、リリースパッケージに含まれていないのかも。
#MacPort
画像が100枚ほど入ったディレクトリで
ENTERで画像を閲覧→5回スペース→Esc→画像を削除をループする
再現率:2/10回
Escを押下した時にカーソル位置が最初のエンターを押して画像を閲覧した時から,カーソル位置が動いておらず選択出来ていない現象が起きることがあります.
名前が似ているファイルを検索 :
Traceback (most recent call last):
File "cfiler_threadutil.pyo", line 173, in run
File "C:\ols\cfiler\config.py", line 523, in jobCheckSimilar
File "cfiler_mainwindow.pyo", line 1698, in setProgressValue
File "cfiler_mainwindow.pyo", line 1899, in paint
TypeError: 'NoneType' object is not callable
サブスレッドの中から、paintが呼ばれて、status_bar_paint_hookが無効になっている。
マルチスレッドの問題。
Info機能で、ディレクトリの内容のサイズによって、ソートして、表示する機能がほしい。
大きいディレクトリから整理するなどのため。
config.py にてMキーの再割り当てをしようとして、以下のような設定をしましたが、再読み込み後、Mキーをおしても以下の例の場合のジャンプリストは表示されず、Mkdirが起動します。
(ファイル選択状態の場合は、Moveではなくジャンプリストが表示されました)。
# config.py
def configure(window):
window.keymap["M"]=window.command_JumpList
また、Mはkeymapに文字列ではなくckit.KeyEvent
オブジェクトをキーとしているためかと思い、以下を追加してみましたが、エラーとなりました。
# config.py
import ckit
def configure(window):
del window.keymap[ckit.KeyEvent(ord('M'),0,extra=0)]
del window.keymap[ckit.KeyEvent(ord('M'),0,extra=1)]
window.keymap["M"]=window.command_JumpList
以下エラー内容
ERROR : 設定ファイルの実行中にエラーが発生しました.
Traceback (most recent call last):
File "../ckit\ckit_userconfig.py", line 42, in callConfigFunc
File "config.py", line 65, in configure
File "../ckit\ckit_key.py", line 439, in \_\_delitem\_\_
File "../ckit\ckit_key.py", line 338, in fromString
AttributeError: 'KeyEvent' object has no attribute 'upper'
文字列"M"
によるキーの再割り当てで、指定したファンクションが呼ばれる。
WindowsのLocalizedResourceNameやLocalizedFileNamesが表示できるモードがあればうれしいが、extensionでは無理ですよね
自分なりに調べてみたが、LocalizedFileNameを返す関数は無さそう
自前でdesktop.iniから読み取るしか無いのか
ckitの関数に使えそうなものがあった
SHGetFileInfoWで表示まではできたが、並び順は元のファイル名になり、若干動作がもたつく
Cfiler で、SplitFileコマンドを実行すると、エラーになる。
object of type 'filter' has no len()
#MacPort
どこに対策が必要か。
NFC:
NFD:
対策の方向性
ルートフォルダにファイルコピーしようとするとエラーが発生します。
ログは以下の通りでした。
コピー : From : C:/Apps/cfiler/readme.txt
: To : D:/readme.txt …
Debug: Traceback (most recent call last):
File ".\cfiler_mainwindow.py", line 3490, in copy_file
File ".\cfiler_filelist.py", line 423, in getCopyDst
File "c:/Python35/Lib\os.py", line 241, in makedirs
PermissionError: [WinError 5] アクセスが拒否されました。: 'D:/'
失敗
[WinError 5] アクセスが拒否されました。: 'D:/'
中断しました.
環境は、Windows7およびWindows10です。
Beta版としてOSX版を愛用させて頂いてております。
使用している状況でPage UpやPage Downができません。
可能であればPage UpやPage Downへの対応をお願い致します。
もし、キーバインドやconfig.pyでの設定方法など対応可能な方法があれば教えてください。
object of type 'filter' has no len()
ファイル名パターンと
無視するディレクトリパターンを指定させるようにしたら
もっと高速にできる。
splitlines せずに re.findall か、re.finditer を使うことで高速化できるかもしれない。
あるいは、splitlines ではなくて、イテレータを使うことで1行ずつ検索したら、
メモリコピーを1回分減らすことができるかもしれない。
StringIO を使うと、splitlines せずに済ますことができそうだが、計測してみると余計に遅くなってしまうようだ。
from cStringIO import StringIO
def iterbuf(buf):
stri = StringIO(buf)
while True:
nl = stri.readline()
if nl != '':
yield nl.strip()
else:
raise StopIteration
コマンドラインで、
NetDrive;S;//tom-note/data
を実行しようとしたとき、メインスレッドが長時間無反応になる。
exeを実行するとき、追加で手動で引数を与えることができるように
exeに対してEnterを押したときに、コマンド入力欄を出す?
Xキーのコマンドラインで、ファイル名実行もやる?
シンボリックリンク自体のみ削除され、中身のファイルは削除されない
ファイルのコピーを複数のタスクをキューイングして処理していたら、例外発生
失敗
'NoneType' object has no attribute 'setPosSize'
中断しました.
print_errorinfoをつかって、発生位置を特定したい。
お世話になります。
久々に内骨格を触ってみようと思い、ver 2.46をダウンロードさせていただきました。
マニュアルの通りmigemo辞書の配置、I-Searchの切り替えを行いましたが思った挙動になりませんでした。
こちら何かさらに設定が必要なのでしょうか?
よろしくお願い致します。
エラーメッセージが表示されるかなどし,Escで元の状態に戻れること
対象を()でくくっていないにもかかわらず\1を指定するミスを起こしたイレギュラーなケースです.
画像は古いままですが2.46でも再現したため,バージョンと再現環境を更新しました.
[¥¥ホスト]にショートカットされているlnkファイルをEnter
すると、そのホストの共有フォルダ名を表示&選択ができる
ようにして欲しい。
ファイルサーバにファイルをMoveしようとするとエラー
同一ファイルシステムだと誤認識している。
[Errno 18] Cross-device link: '/Users/xxxx/Downloads/CraftCommander_243_mac_beta1.zip' -> '/Volumes/home/software/CraftCommander_243_mac_beta1.zip’
stat で st_dev をチェックすれば、同一ファイルシステムであるか、確認できるかも。
#MacPort
長いファイル名は末尾が省略されるが、その際に拡張子以降が1文字分ずれて日時の末尾が追い出されてしまう
日本語のファイル名のせいかも知れないが、未検証
いくつかのフォントで確認してみたら、Migu 1Mの場合にずれるようだ
日本語でもアルファベットでも関係なくおかしくなる
内骨格 version 2.53
Windows10(1809)
Traceback (most recent call last):
File ".\cfiler_mainwindow.py", line 894, in _onKeyDown
File "../ckit\ckit_command.py", line 28, in call
File ".\cfiler_mainwindow.py", line 2710, in executeCommand
File ".\cfiler_mainwindow.py", line 3128, in command_Enter
File ".\cfiler_filelist.py", line 374, in getLink
File ".\cfiler_filelist.py", line 209, in init
OSError: file does not exist. []
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.