存在不明のパス名からディレクトリを構築する


公開 (UL): 2020-06-07
更新 (UD): 2020-06-07
閲覧 (DL): 2024-12-12

この記事のもくじ

→本文へ
当サイトは SNS の公式アカウントがないので,「議論ネタ」にする際は,皆さんのブログ,メーリングリスト,SNS や掲示板などで,適当にハッシュタグを付けたりリンクを掲載するなどしてご利用ください。

前の記事

2020-05-04
UTF-8 文字(列)と UNICODE の変換

次の記事

2020-12-22
年月日から曜日を求める数式

最近の記事

2024-02-11
XMPP - 長く使える安心チャット
2023-09-15
Perl の正規表現での A と Z の扱い
2023-01-16
Android のキーボード・ショートカット一覧
2022-08-09
代表的な画像ファイル形式一覧
2022-04-04
サイトのローカル試験と実ウェブ上の差を縮める手法(Perl)
新着情報
She appears also the top page.

新着情報 Recent docs.

Sorry, but most of these pages are only Japanese.
「ぱそはだ」シリーズ «PASOHaDA: Parts Assignment and Soldering Only Handmade Design Assist.»
高度な技能不要の電子工作で自立介護 DIY。
簡単にできるネット防犯対策 «Simple measures against phishing mails and malwares.»
フィッシングメールを暴き,ウイルスの侵入を阻止する簡単な対策を紹介。
福祉改善を阻むオヤクショ思考 «Japanese subsidy system of communication aid device for disabilities cannot be applied those if it's with features except communication, IDK why.»
「意志伝達」しかできない高額な装置にのみ税金が使われる謎制度。
「理不尽採点」教育と「英語力低下」 «Japanese English skill ranking in the world has been down. I guess one of the reason is that the government's education policy lacks coherence.»
日本人の英語力が低下,しかも小学校から英語が必修になった世代ほど。「教育方針の一貫性のなさが原因」とする考察。
倫理意識の社会的低下 «One day, I set to stop DM from a banking corporation, but those continue to be sent after that. I'm feeling falling sense of ethics in Japanese society.»
某銀行からの DM が,およそ金融と関係ないもの多数。停止設定後も何ヶ月も配信が続く状況に,倫理意識の社会的低下を感じた話。
給使乖離現象 «"Server and User Design Gap" phenomenon (abbr: SUDG), it's the trend to lack of considerations in design for user of the service.»
愚かな経営者たちが考えた劣悪なウェブサービスにより,人々が一方的に不利益を被るという話。
日本の「IT 人材不足」の正体 «The simple reason why Japanese companies lack IT-skill.»
保険会社からのセキュリティガバガバメールが「IT 人材不足」の正体を暴く。

人気記事 Frequent view pages.

現在当サイト人気 No.1!
Android のキーボード・ショートカット一覧 «The list of Android Keyboard Shortcuts (EN ready).»
Android のスマホやタブレットにキーボードをつないだ時に知っていると便利なキー操作。
表計算で「令和」に対応する方法
How to adapt the Gengo era "Reiwa" on spreadsheet applicaiton.

古いアプリも OK。「表計算 令和」の検索結果上位御礼!
表計算ソフトで予定表を自動作成する超便利な方法 «How to make the schedule table automatically on spread-sheet.»
「毎月第○×曜日」的な法則は自動で作らせてラクしよう!
表計算ソフトに「個人情報保護機能」を仕込む方法 «Prevention to leak private-data with spread-​sheet macro function.»
「漏えい」のためのフェイルセーフ。「表計算 個人情報」の検索結果上位御礼!
Wary-Basher (ワリバッシャー)
DIY device that enables the handicapped to operate many things with a switch like push-button.

障害者の様々な操作をスイッチ操作で実現する器具。キットも発売中! 「作り方」PDF ダウンロード多数御礼!←地方教育委で人気。

おすすめ! Recommend

貧乏人を殺す行政の構造 «Structurally, the administrators kill the poors in Japan.»
ヘタすると多摩川に流されるところだった台風 19 号

この記事に対する → 調布市の反応
[PDF 118KB] 生活保護申請時のオヤクショ対策
申請の「水際作戦」を突破するための心得。「ホームレス総合相談ネットワーク」製作の図解を小サイズ化したもの。

出典 ☞ 路上からもできるわたしの生活保護申請ガイド (2017 年版) (外部リンク)
文字ベース天気予報 «Weather forecast in text mainly from JMA Json-data.»
古いブラウザやスマホ,音読ソフトでも大丈夫! 気象庁の JSON データを利用した文字ベースの天気予報(試験版)。
「事故防シート」について «Cared persons taking with "Jiko-​Bow-​Sheet" prevents from accidents.»
介護現場の負担軽減と事故防止のアイデア
【連載】 キーボードの「キー」の詳しい使い方 «The detial of usage each key on keybord.»
各キーの機能詳細。機能別五十音順一覧。
和易ゐ記 (WAI-WIKI) «WAI-WIKI is light­weight markup language for Japanese, and generates HTML on this server on-​demand.»
当サイトで開発/使用中の日本語向けに特化した軽量マークアップ言語

ご連絡 Contact

▼ メールフォームはこちら
SSL 証明書の更新に不具合が多いため,期限切れエラーが出た際は,お手数ですが「例外指定」をお願いいたします。 一時期,送信できなかったようです。すみません。今は大丈夫だと思います(テストは OK)。

ファイルの暗号化
当サイト管理者(石川)宛にメール添付で送信するファイルを暗号化したい時は,唯一のパスワードを PPOP で取得できます。 PPOP gives a password for encryption of the file(s) attached your mail to the admini­strator of this site M.Ishikawa.
PPOP

MEMO / Email to the Author
あとで調べたい点のメモなどに利用可能。
下部ボタンでそのまま著者にメールできます。 一時期,送信できなかったようです。すみません。今は大丈夫だと思います(テストは OK)。


CAPTCHA: easy math prob in Japanese

時事川柳 News Senryu

パーティー券  
民意も一緒に
  蹴り返し
Kick back both party tickets and people's opinions.

 自民党の一部(?)派閥がパーティー券のノルマを上回る分の売上げを議員にキックバックしておきながら政治資金収支報告書に不記載だった問題が広がりを見せている。なるほど,こうしたことが党内で常套化していたのだとすれば,岸田総理はじめ同党政治家にことごとく「民意を蹴り返すクセ」が付いているのは当然という感じもする。これっぽっちも「悪いこと」と思わなかったのだろうな。そんな人たちに誰が票を入れるのだろうか。少なくとも,岸田の広島と「頭悪いねぇ」と暴言を吐いた議員を選出した長崎に「ふるさと納税」はしないことにしよう。
参考: 自民県 絶対しないぞ ふるさと税

今回はもう一句!

危機感の  
ワリに二階は
  誰も居ず
Having sense of crisis, but nobody takes shelter of 2F.

 大雨などで危機感を持ったら二階のような高い所へ避難すべき的な話を聞いたよーな気がするのだが? パーティー券のノルマ上回り分キックバックの政治資金収支報告書不記載問題で,安倍派は何人も辞任したのに,同じく捜索を受けている二階派に辞任する話があるかというと,今のところ誰もいない。総理は「危機感を持って」とか言っているらしいが,どこが「危機感」なのやら。

(⌚2023-12-19)

ご支援 Support this site.

まだまだ コロナ失業中!!
CORONA-NEET, seeking works now!

この活動をご支援いただける方はこちらへ Could you support this site, see here (but Japanese).
都道府県庁さん, 地方自治体さんや教育委員会さん, 障害者就労支援機関さんやその他公的機関,省官庁さん, 「タダ見」しているだけでは, 格差が広がるだけだと思いませんか?
Welcome!
Amazon    Google
The companies, thanks for many accesses every months! Are the articles I wrote helping for increasing your income? Although, I cannot get even a penny and jobs from that.

 ファイル作成時,指定パスの存在を確認し,ディレクトリが存在しない場合に根元に近い既存ディレクトリからディレクトリを新規作成してパスを構築していくための処理。

● perl の場合

 関数再帰呼び出しでパラメータのふるまいがおかしかったのでメモ。
 こんな関数を作ったのだが……。

▼ 再帰的ディレクトリの確認と構築(失敗する)
  sub	mkdirRc {
	return( ( -d $_[0] )||
	  ( $_[0] =~ /\/[^\/]+$/ && mkdirRc( $` ) &&
		mkdir( $_[0], 0777 ) ) );
	}

 受け取ったパラメータのパスが既存なら真を返し(2行め),存在しなければ,最後のスラッシュより前の文字列,つまり親ディレクトリのパスを再帰的に自分に渡して再調査(3行め)をしてから,受け取ったパラメータ名でディレクトリを作る(4行め)。途中で何かエラーがあれば,ディレクトリは作られず偽を返す。
 なかなかシンプルに書けたと思っていたが,正しく動作しない。途中で「File exists」というエラーが出る。つまり,存在しないディレクトリでも,「既に存在している(から作れない)」エラーが出る。

 調べたところ,親ディレクトリを辿っていき,存在するディレクトリに行き着くと再帰呼び出しから返って来た時のパラメータ($_[0])が全てそのディレクトリ名になってしまうという現象が起きていた。だから,それ以降は既存ディレクトリ名で mkdir が呼び出されるらしい。
 たとえば,このサブルーチンでファイルを作るためにパスを構築したい時は以下のように呼び出すわけだが……。

▼ ファイル作成のためのディレクトリの構築
	$filname = "/home/user/dir1/dir2/file";
	$filname =~ /\/[^\/]+$/;
	mkdirRc( $` );

 /home/user が既存の場合,親ディレクトリを辿ってそこに行き着くと,そこから返って来た時は呼び出した側の $_[0] も /home/user になってしまっていて,mkdir で「既に存在する」エラーが出てしまう。
 こうしたら出なくなった。

▼ 再帰的ディレクトリの確認と構築(成功する)
  sub	mkdirRc { my $p = $_[0];
	return( ( -d $p )||
	  ( $p =~ /\/[^\/]+$/ && mkdirRc( $` ) &&
		mkdir( $p, 0777 ) ) );
	}

 1行めの my $p に値を移しただけなのだが。パラメータ配列(@_)というのは,そのサブルーチン「唯一」のものなのか?
 そのワリに,以下の「階乗」を求める関数は正常に動作する。

▼ 階乗を求める
   sub fact { return $_[0] ?( fact( $_[0]- 1 )* $_[0] ): 1; }

 どういう現象なんだろ。



© M.Ishikawa; TREEWARE 2024.