変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

readEntries

[JavaScript]dropイベント

MDNにフォルダをドロップして中身をリストアップするサンプルを見つけた。

FireFoxではうまく動くが、ChromeやEdgeでは・・・・・・・・・

code: 0
message: "A URI supplied to the API was malformed, or the resulting Data URL has exceeded the URL length limitations for Data URLs."
name: "EncodingError"

が出てしまう。

「APIに提供されたURIの形式が正しくないか、結果のデータURLがデータURLのURL長の制限を超えています。」

ってファイル名のせい?

しかし、C:¥aaaでも同じ結果だった。

原因は判らないけど、コードをアップしてみると・・・何故かうまくいく(アップ先)。

どうやら、httpなURLなパスにあるHTMLファイルをブラウザで開いている場合はOKらしい。

微妙だ。どっちかと云えば、

PCにコピったHTMLファイルでウマくいく方が安心なのに

得体のしれないのURLの画面のページに自分のPCのフォルダをドラッグするのは・・・

素で怖いw

と思う。

後、先の参考URLの注釈通りにreadEntries は、100個までしか読んでくれない。

forEachはPromiseを返さないので、非同期処理を抱えてる部分を含めて、

ローカル関数に書き換えたが forEachの最終ループで再起すると

どう見ても無限ループにしか見えない

ここは、forEachをmapにして暗黙の同期化を発動する。

ついでにmapの戻り値から readEntries が空っぽを渡たさなかった場合のみ再起するようにした。

readEntries  も非同期っぽいから、ローカル関数のままか。

フォルダに203個ファイルがあっても全部書き出してくれたから、

多分大丈夫。

メデタシ、メデタシ。(かな?

あ、HTMLのINPUTタグでwebkitdirectory を指定すると

フォルダも選択できるらしい。

こっちの方が良さそう。

でも、非標準らしい。




top