1

現在のディレクトリにファイル(ファイル名は最初の引数から取得)を作成するための簡単なプログラムをCで作成しました。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv){
   FILE *fp;
   if(argc != 2) exit(1);
   fp = fopen(argv[1], "w");
   if(fp == NULL) exit(1);
   fclose(fp);
   return 0;
}

これをVisualStudioCコンパイラでコンパイルして実行可能ファイルを生成createfile.exeし、デスクトップに配置して非表示にします。次に、デスクトップをPath環境変数に追加しました。

私の目的は、(Win + Rを使用して)実行ウィンドウを開き、タイプしてデスクトップcreatefile myfile.texにファイルを作成できるようにすることです。myfile.texコマンドプロンプトでプログラムを実行すると、プログラムは意図したとおりに動作しますが、[実行]ウィンドウにコマンドを入力すると、ファイルは作成されません。

上記のようにこれを機能させるために、プログラムまたは環境を変更するにはどうすればよいですか?

4

1 に答える 1

1

ファイルはおそらく書き込まれますが、作業ディレクトリを制御していません。を使用できますSetCurrentDirectoryが、Windows では、デスクトップはどこにでも置くことができ、ローカライズされます。私のフランス語版 Windows XP では「Bureau」という名前です。それがSHGetSpecialFolderLocationの出番です。

ほとんどの人はあきらめて、プログラムの代わりに次のバッチ ファイルを作成します。

@echo off

pushd %~dp0
IF NOT EXIST "%1" (
rem this next line is like the unix utility "touch"
echo. 2> %1
)
popd

バッチ ファイルと同じディレクトリに空のファイルが作成されます。

于 2012-09-28T19:33:00.950 に答える