Delphiでディレクトリ内ファイル名の取得

このQ&Aのポイント
  • Delphiアプリケーションでディレクトリ内のファイル名を取得する方法を教えてください。
  • ディレクトリ内のファイルを別のディレクトリにコピーして名前を変更する方法を教えてください。
  • Delphiでコピー元ディレクトリ内のファイル名を取得する方法を教えてください。
回答を見る
  • ベストアンサー

delphi5でのディレクトリ内ファイル名の取得

こんにちは。質問があります。 delphiのアプリケーションであるディレクトリのフォルダ内のファイルを 別のディレクトリのフォルダ内に名前を変えてコピーしようと考えています。 基本的にコピー元のディレクトリ名はわかりません。 コピー先のディレクトリは存在しなければ、名前を指定して作成し、その中に名前を変更したファイルを格納する流れです (わかりづらいかも・・・) フォルダが存在しなければ作成したり、ファイル名を変更してコピーする のはわかったのですが、コピー元のディレクトリ内のファイル(もしくはディレクトリ)名を取得することがわかりません。 全てソースの中でプログラムしたいと考えています。(VCLは使用しない) こんなんでもわかっちゃったりする方がいらっしゃいましたら、 どうか愛の手を・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.2

こんにちは、honiyonです。   そのコードですと、FindNextには、sr1ではなくsrが渡されなければならないと思います。   それが原因でしょうか?   そうでなければ、まず faAnyFileを指定して、「そのフォルダの中身全部が取得出来ているか?」と試してみると良いと思います。(取得出来ていればfaDirectoryに戻してみる)   参考になれば幸いです(..

jyopper
質問者

お礼

すみません。わかりました。 findfirstのディレクトリでディレクトリを示す文字列の最後に'\'が抜けて いました。 現在はディレクトリ内のディレクトリおよび、ファイルが取得できるように なりました。 アドバイスありがとうございましたー。

その他の回答 (1)

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。    FindFirst, FindNext, FindClose という関数があります。    これを駆使する事で可能です。    がんばってください。    参考になれば幸いです(..

jyopper
質問者

補足

アドバイスありがとうございました。 if FindFirst(sSetPath , faDirectory, sr) <> 0 then begin showmessage(sr1); while findnext(sr1) = 0 do  begin showmessage(sr1); end; end; ※上記sSetPathには'C:\RENSYU'が設定されています。 'C:\RENSYU'のフォルダの下に'0830'というフォルダが存在します。  この’0830'というフォルダ名や、そのフォルダ内の'0831_1.txt、0830_2.txt,....’というファイル名まで取得したいのですが、上記の プログラムではRENSYUと一回表示されただけで終了します。 RENSYU以下のフォルダには'0830'のほか'0829','0828'など別のフォルダも存在します。どうすればRENSYU以下のフォルダ名を取得することができるのでしょうか?

関連するQ&A

  • ディレクトリ名をファイル名するバッチファイル

    ディレクトリ名を取得してその名称でフォルダを作るバッチファイルを考えています。 OSはWINDOWS XPです。 こういったディレクトリがあるとします。 111~444:名称が固定のディレクトリ bbb:名称が可変するディレクトリ mmm.bat、xxx.text:111フォルダと同じところにあるファイル 111┬222─bbb┬333─yyy.text    │        └zzz.text    │    └bbb┬333─yyy.text         └zzz.text mmm.bat xxx.text mmm.batを実行すると、111ディレクトリ以下のフォルダ名を取得し、 下記のようにフォルダを作成し、yyy.textの場所にbatファイルと同じ 所にあるxxx.textをコピーして差し替えるという動作をしたいのです。 (zzz.textは内容は違うが同じファイル名です) 444┬222─bbb┬333─xxx.text    │       └zzz.text    │    └bbb┬333─xxx.text        └zzz.text バッチコマンドで、ディレクトリ名を取得して空のフォルダを作る所までは 下記のようにできたのですが、 444┬222─bbb─333    │    └bbb─333 二つのzzz.textのコピー方法と、yyy.textの場所にxxx.textをコピーするにはbbbという可変するディレクトリを通らなければいけないのでその取得方法がわかりません。 分かる方は是非お教えください。 言葉が足りないところは補足もいたします。 よろしくお願いいたします。

  • 同じディレクトリ内にある同名のフォルダを探したい

    WinXPを使用しています。 1つのディレクトリ内に大量のフォルダがあるのですが、その中にあるフォルダと同じ名前でフォルダを作成しようとするとエラーが起こります(「指定されたファイル名は既に存在します」)。 これを、指定されたファイル名が既に存在した場合に、そのフォルダを開くか、そのフォルダを選択状態にするようにはできないのでしょうか? 現在の状態ですと、同じ名前のフォルダがあった場合にはそのフォルダを探さなくてはならず、とても面倒です。 宜しくお願いします。

  • サーバー内にある指定した拡張子のファイル名を取得するには

    サーバー内にある、拡張子が「.html」であるファイル名を 配列に格納したいのですが、ルート以外のほかのディレクトリに入っているファイルは、 例えばhttp://***.jp/cgi-bin/に入っているファイルは cgi-bin/index.html のように、ディレクトリの名前も含めて格納したいんです。 どうすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • エクセルVBAでセルにあるファイル名のファイルを同じくセルにあるフォルダ名のフォルダにコピー

    お世話になります。 絶対パスがあり、コピー元、コピー先(格納先)としてシート上の操作で ファイルをフォルダにコピーしたいのですが、VBAでできるでしょうか? ・B列B6以下にコピー元のファイル名(絶対パス) ・D6に格納先のフォルダ名(絶対パス) があります。 この条件だけでコピー→格納するコードを教えていただけたら助かります。よろしくお願いします。

  • ディレクトリ付きのファイルコピーについて

    WINDOWSコマンドで教えてください。 ある特定の1ファイルをディレクトリ付きでコピーするにはどうしたらよいでしょうか? XCOPYを使うと、特定DIRを指定して、その中に存在するファイルをディレクトリ付きでコピーはできたのですが、特定の1ファイルをディレクトリ付きでコピーすることが出来ず困っております。 宜しくお願い致します。

  • フォルダ名が変更できない

    1、フォルダ名が変更できずに困っています。 例えば、フォルダを新規作成しても「新しいフォルダ」 という名前から別の名前に変更することができません。 書庫名、ファイル名は問題なく変更できます。 2、同じディレクトリにあるフォルダ同士間で、フォルダの移動ができません。 例えばデスクトップ上にあるAフォルダ内に、同じくデスクトップ上にある Bフォルダをドラッグアンドドロップしても移動できません。 別のディレクトリへ移動はでき、同ディレクトリ内でもコピーはできます。 1週間ほど前までは正常に動作していました。 推測するに、レジストリ(種類/データ)の異常だと思うのですが、 どのレジストリに着目すればいいか見当もつきません。 どなたかヘルプお願いします。 win vista home-basic

  • ディレクトリ名変更してコピーするバッチ

    初心者のですが質問させていただきます。 c:\"Documents and Settings"\"My name"\"元フォルダ" というフォルダを、デスクトップ(c:\"Documents and Settings"\"デスクトップ")にコピーし、c:\"Documents and Settings"\"My name"\"元フォルダ"\test.htmlファイルもコピー後のデスクトップにあるフォルダの中にコピーして、最後にのデスクトップのフォルダの名前を"agoago{その日の日付}go"に変更することはできますでしょうか? (上の文中の"{}"はフォルダ名には含まれません)

  • 上位ディレクトリ名(フォルダ名)を取得するには?

    phpファイルが入っている、2階層上位のディレクトリ名(フォルダ名)を取得したいと思っています。 例 http://~.com/aaa/bbb/ccc/test.php test.phpが本体です。 ここから2階層上位のディレクトリ名、ここでは「bbb」を取得するような事はできないでしょうか? test.phpの中に、2階層上位のディレクトリ名を記述したいと思っています。 具体的に言うと、 $name = "●●●"; 上記の●●●に、2階層上位のディレクトリ名を入れたいです。 同じようなファイルが多数あり、「bbb」には様々なフォルダ名があり、test.phpの1つ1つを書き換えるのに手間がかかるので、ディレクトリ名を自動的に取得できれば助かります。 phpの知識がほとんどないため、お力をお借りできればと思い、質問させて頂きました。 アドバイスをお願い致します。

    • ベストアンサー
    • PHP
  • ディレクトリおよびファイルを作成する方法について(MS-DOSバッチ、vbs等)

    Windows Server 2003 についての質問です。 もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。 目的  ・あるツールの評価をするため、多数のディレクトリ   とファイルを作成する必要があります。   これを手動で実行することは時間的に無理があるため、   MS-DOSによるバッチやvbs等スクリプトによる自動化を   したいと思っております。 やりたいこと  ・例えば、下記のような階層構造でフォルダおよびファイルを   作成するバッチを作成したいです。   c:\フォルダ1\フォルダ2\フォルダ3\フォルダ4\フォルダ5\フォルダ6 各階層のフォルダ配下にもサブフォルダとファイルを多数存在させます。   ファイルサイズは固定です。   フォルダ、ファイルの名前は単純なもので構いませんが、   番号を振りたいです。   方法としては、まずは元になるファイルを作成しておき、   あとはforコマンドでディレクトリを作成してファイルを   コピーしていけば良いと思っておりますが、実際に   どのようにMS-DOSバッチ化(もしくはvbsスクリプト化)   すれば良いか不明です。 お手数ですが、どうぞご教示のほど宜しくお願い致します。

  • 【PHP】PHPでそのファイルが格納されているディレクトリ名を変数に代入する方法を教えてください。

    別のファイルに格納されている変数(フォルダ名=変数名)を呼び出して、書き出したいのですが、echoして書き出してもフォルダ名しか書き出すことができません。 --------- ・別ファイルに$folderを作成。  $folder無いはhtmlを書いています。  - echo $folder;  - と書くと思ったものが表示されます。  -- しかし、ファイル名が多いので中のプログラムをいじらずに書き出ししたいのです。 ・フォルダの名前を取得  Test/01/folder/index.phpから"folder"を取得したい。  ↓は検索で出てきた構文です。  -----  $list = split( "/", $_SERVER[ SCRIPT_NAME ] );  $name = $list[ count( $list ) - 2 ];  ----- ・別ファイルに格納されている$folderの変数を呼び出して書き出して、  $folderの中身が書き出される。  (現在この状態で、echo $name;をするとfolderとだけ書き出されてしまいます。)  ・・・というのが理想です。  宜しくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう