C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.100874 の関連記事表示

<< 0 >>
■100874  ファイルシステムのディレクトリpathの指定方法について
□投稿者/ 高橋 -(2022/11/12(Sat) 16:39:19)

    分類:[.NET 全般] 

    AとBが実在のディレクトリとします。
    AはBの上位です。
    すると、カレントディレクトリを設定するために
    パスの指定様式に

    path = "/A/B/" と path = "/A/B" がありますが、

    何が違うのでしょうか?

    両方とも
    失敗したり、成功したりする経験があったので、
    自分の推測では、Bの直下のディレクトリを参照しようとする場合、path = "/A/B" にして、
    Bの直下のファイルを参照しようとする場合、path = "/A/B/" にすべきだと、
    正しいかどうか。


    宜しくお願いいたします。


親記事 /過去ログ176より / 関連記事表示
削除チェック/

■100875  Re[1]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ とっちゃん -(2022/11/12(Sat) 17:12:25)
    No100874 (高橋 さん) に返信
    > AとBが実在のディレクトリとします。
    > AはBの上位です。
    > すると、カレントディレクトリを設定するために
    > パスの指定様式に
    >
    > path = "/A/B/" と path = "/A/B" がありますが、
    >
    > 何が違うのでしょうか?
    >
    > 両方とも
    > 失敗したり、成功したりする経験があったので、
    > 自分の推測では、Bの直下のディレクトリを参照しようとする場合、path = "/A/B" にして、
    > Bの直下のファイルを参照しようとする場合、path = "/A/B/" にすべきだと、
    > 正しいかどうか。
    >
    よくあるのは

    fileName = "c.txt"

    とあった場合、

    filePath = path + fileName;

    のような処理をしたい場合で変わってくることが多いです。

    前者の場合、最後が区切り文字になっているので、文字列として結合した結果、
    "/A/B/c.txt"
    になります。
    ですが、後者の場合は区切り文字がないため、
    "/A/Bc.txt"
    となってしまい、異なるフルパスになってしまいます。

    よくあるのが、こういったファイルパスを自分で組み立てる場合のミスですね。

    python であれば、こういったミスを防ぐため os.path.join() API を使うことで回避ができます。

    ほとんどのプログラミング言語にパス組み立て用のAPIがありますので
    不慣れな場合、ネットなどで検索してみるとよいと思います。
    今回であれば、
    "言語名 path 結合"
    で検索すれば、ほぼトップにその言語向けのパス結合APIが見つかると思います。
記事No.100874 のレス /過去ログ176より / 関連記事表示
削除チェック/

■100876  Re[2]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ 高橋 -(2022/11/12(Sat) 18:43:20)
    No100875 (とっちゃん さん) に返信

    お世話になっております。
    ありがとうございます!

    Pythonご存知の方ですね、助かります。
    Python環境として利用しているのはGoogle Colaboratoryですので、OSは分かりません。
    Colabのdir構造を下記のように仮定します

    /A/B/C
    /A/D/E


    カレント dir= B
    Dの下のdir E をimportするためにBの相対パスを下記のように設定することで、
    目的達成できるそうですが、どっちが本当かは分からなくなります。

    sys.path.append("../D")
    sys.path.append("../D/")

    最初は1番目の様式で、Eのimportを失敗(Eというパッケージがないというエラー)したので
    2番目の様式に変更して、成功しました。

    今や再び1番目の様式に戻しても成功にimportしています。

    恐らく、Google Colaboratory 側に正しいimport情報をキープしているかな。
    なので、上記2つの様式のどれが本当に正しいかどうかは分からなくなります。

    アイディアをいただければ、幸いです。





記事No.100874 のレス /過去ログ176より / 関連記事表示
削除チェック/

■100877  Re[1]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ 伝説のカレー -(2022/11/13(Sun) 20:12:46)
    No100874 (高橋 さん) に返信

    print(sys.path)で既存のものを出力するとどれも末尾に/は付いてませんでした
    os.path.normpath("a/b/")の結果がa/bになることからも末尾の/は入れない方が無難な気がします

    POSIXではa/b/はa/b/.と解釈されるようですね
    https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11

    sys.path.append("../D")と書いたときにimportが失敗した件についてはたまたまそうなったんじゃないかなと…
    Google Colaboratoryでググったところ

    https://qiita.com/k4zuya/items/abe2362f61d53285d219
    > どうやら一発で読み込んでくれない時もあるみたいです。

    という情報があったのでそう思いました
記事No.100874 のレス /過去ログ176より / 関連記事表示
削除チェック/

■100890  Re[2]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ HattariB -(2022/11/15(Tue) 21:07:41)
記事No.100874 のレス /過去ログ176より / 関連記事表示
削除チェック/

■100892  Re[3]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ HattariB -(2022/11/16(Wed) 20:47:49)
記事No.100874 のレス /過去ログ176より / 関連記事表示
削除チェック/

■100951  Re[4]: ファイルシステムのディレクトリpathの指定方法について
□投稿者/ 高橋 -(2022/12/05(Mon) 13:20:36)

    伝説のカレーさま、HattariB さま
    ご説明と情報ありがとうございます!
    いろいろ良い勉強になりました。

    心より感謝致します。
記事No.100874 のレス / END /過去ログ176より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -