ページ 11

ドラッグされたファイルのフォルダ名を抜き出す良い方法

Posted: 2010年9月06日(月) 21:35
by シエル
いつもお世話になっております。シエルです。

今回は情けない質問で申し訳ありませんが、
実行ファイルにドラッグされたファイルのディレクトリ名を取得したいのですが、
どうもうまくいかずに困っています。

現在のプログラムは下記のようになっています。
まず、コマンドライン引数のバイト数を求めて、後ろから1文字ずつ「¥」マークがあるところまで
見ていきそっから前の部分だけ引っこ抜こうと思ったのですが、
この「¥」マークを指定しても、エスケープ文字に見られてしまうらしくコンパイルできません。
何かいい方法はないでしょうか?
極力WINAPIを使用しない方法でお願い致します。

char out[200];
int i;

int length=strlen(argv[1]);

for(i=length-1;i!=-1;--i){
if('¥' == argv[1])//
break;
}

if(i==-1){

puts("どうやらフォルダ名が正しく取得できませんでした");
getchar();
    fclose(fp);
return -1;

}else{//円マークが見つかったら

memcpy(out,argv[1],i+1);//フォルダ名をコピー
out[i+1]='\0';//終端文字を入れる。

}


情けない質問で申し訳ございませんが、よろしくお願い致します。

追記:
この掲示板だと¥マークが/に変換されるので、コード内では全角にしてます。 画像

Re:ドラッグされたファイルのフォルダ名を抜き出す良い方法

Posted: 2010年9月06日(月) 21:38
by MNS
\\
で良いのではないでしょうか?

追記:つまり¥¥です。 画像

Re:ドラッグされたファイルのフォルダ名を抜き出す良い方法

Posted: 2010年9月06日(月) 21:44
by シエル
うわー。円マークって¥¥で表すんだったんですね。

そのとおりやったらいけました。お恥ずかしい><

たまに変なところが抜けてるところがあるので、
今回のような質問をしてしまうかもしれませんが、今後ともよろしくお願い致します。