- ベストアンサー
実行ファイルのサブフォルダのファイル名変更で
h = FindFirstFile("bitmap\\*.txt", &fd); if(h == INVALID_HANDLE_VALUE){ MessageBox(NULL, "ファイルが見つかりませ ん", "エラー", MB_OK | MB_ICONERROR | MB_RIGHT); return 1; } このようにして実行ファイルのサブフォルダにあるtxtファイルを見つけることはできるのですが、このサブフォルダにあるtxtファイルのファイル名を1に変更しようとMoveFile( fd.cFileName, filename )などとしてもファイル名が変更できません。サブフォルダではなく、、((h = FindFirstFile("*.txt", &fd)のように指定して、実行ファイルにあるtxtのファイル名は変更できます。この実行ファイルのサブフォルダにある任意のtxtファイルを見つけだし、ファイル名を変える何かいい方法があればご教授お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、MoveFile で名前の変更ができないというのは、パスを指定していないからでしょう。 fd.cFileName には TEST.TXT のようなファイル名しか入っていませんので、カレントディレクトリから見て bitmap\XXX.TXT ではなく、カレントディレクトリの中の XXX.TXT のファイル名を変えようとしていることになります。 char strOld[MAX_PATH]; char strNew[MAX_PATH]; strcpy( strOld, "bitmap\\" ); strcat( strOld, fd.cFileName ); strcpy( strNew, "bitmap\\" ); strcat( strNew, "TEST.TXT" ); MoveFile( strOld, strNew ); のようにして、パスを指定してやればOKだと思います。 あと、ここは UNIX 系の OS の質問もありな場所なので、OS は何か ( Windows 何々とか ) 書いておきましょう。( Windows でも、API によっては OS のバージョンによって動作が異なったりすることもあるようですし。) それと、念のため、使用している開発ツール ( Microsoft の VC だとか ) も書いておいた方がいいかもしれません。(今回は関係ないみたいですが。)
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
フルパスで指定すれば問題ないような。
お礼
tsukasa-12rさん。ありがとうございました。tsukasa-12rさんのとうりにしたらできました。