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

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

C# と VB.NET の入門サイト

Re[4]: コンソールアプリケーションでのフォルダ作成


(過去ログ 119 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■69707 / inTopicNo.1)  コンソールアプリケーションでのフォルダ作成
  
□投稿者/ あいうー (1回)-(2014/01/22(Wed) 18:16:52)

分類:[C#] 

vs2013 C#でプログラムが存在するパスに、自分で名前を入力し、数も指定できる
プログラムを組みたいのですが、どうしたら良いでしょうか、調べてはみたものの、
あまり役には立ちませんでした。(失礼ですが)

厚かましいお願いですが、サンプルコードなどがあれば
よろしくお願いします。
引用返信 編集キー/
■69708 / inTopicNo.2)  Re[1]: コンソールアプリケーションでのフォルダ作成
□投稿者/ 魔界の仮面弁士 (507回)-(2014/01/22(Wed) 19:00:51)
No69707 (あいうー さん) に返信
> vs2013 C#でプログラムが存在するパスに、
これは、そのプログラム(EXE)自身のパス、ということでしょうか。


> 自分で名前を入力し、数も指定できる
名前とは、フォルダー名のことでしょうか? また、数というのは何の数でしょうか。

階層数のことなのか… "NewFolder" ×3 なら C:\target\NewFolder\NewFolder\NewFolder\
連番を振りたいのか… "NewFolder" ×3 なら C:\target\NewFolder1\、C:\target\NewFolder2\、C:\target\NewFolder3\


> プログラムを組みたいのですが、どうしたら良いでしょうか
何について知りたいですか?
「やりたいこと」は分かりましたが、
「何を知りたいのか」「何が分からないのか」が書かれていないようです。


とりあえず、フォルダーを作成するには、System.IO.Directory.Create メソッドを使えば OK です。
また、深い階層のフォルダーを作成したい場合は、上の階層からひとつずつ作成する必要があります。


それとも、「名前を入力する」方法を探しているのでしょうか。
だとしたら、まずは Console.ReadLine メソッドを試してみてください。
http://ufcpp.net/study/csharp/st_consoleio.html


あるいは、コマンドライン引数で名前を渡したいということなのであれば、
下記のサンプルが参考になるかと思います。
http://dobon.net/vb/dotnet/programing/commandline.html



> 調べてはみたものの、
> あまり役には立ちませんでした。(失礼ですが)
どういう情報を求めているのかが質問文からは読み取りにくかったので、
もう少し具体的に書いて頂けると助かります。

具体的には何を調べてみたのか、Webページ名や書籍名などを覚えていれば教えてください。
また、役に立たなかったとのことですが、その理由が
「まったく関係ない情報だった」のか、「関係しているように思えるが理解できなかった」のか、
「やりたいことに似ているけれど、自分の思っているものとは微妙に異なる」のか、
「○○というキーワードで探したけれど、情報そのものが何も見つからなかった」とか。


具体的な情報が無いと、具体的なサンプルあるいは考え方のヒントを出したとしても、
これも役に立たない!と切り捨てられてしまいそうで…。
引用返信 編集キー/
■69709 / inTopicNo.3)  Re[1]: コンソールアプリケーションでのフォルダ作成
□投稿者/ WebSurfer (165回)-(2014/01/22(Wed) 19:11:45)
No69707 (あいうー さん) に返信
> vs2013 C#でプログラムが存在するパスに、自分で名前を入力し、数も指定できる
> プログラムを組みたいのですが、どうしたら良いでしょうか、調べてはみたものの、
> あまり役には立ちませんでした。(失礼ですが)
>
> 厚かましいお願いですが、サンプルコードなどがあれば
> よろしくお願いします。

「c# ディレクトリ作成」などをキーワードにググれば、サンプルコードがあるサイト
がいくらでも見つかるはずです。基本的な知識があれば十分役に立つはずです。

「役には立ちません」とはどういう意味ですか? あなたの知識では理解できないと
いうことですか?
引用返信 編集キー/
■69713 / inTopicNo.4)  Re[2]: コンソールアプリケーションでのフォルダ作成
□投稿者/ あいうー (2回)-(2014/01/22(Wed) 23:16:26)
No69709 (WebSurfer さん) に返信

なにぶん当方は初心者なもので、
様々なサイトを漁りましたが、理解しがたいものばかりです

初心者向けのサイトも巡りましたが、あまり理解できずに
何かプログラムでも作れば少しは理解できるだろう、
と甘い気持ちでやったのが悪いですね

わからない点は、ファイル名自分で入力可能にする点
var name = Console .ReadLine();

これをどうやったらファイル名にすることができるのか、

そして、ファイルを連番のように連番数を入力指定するには
どうしたらよいのか、ということが知りたいです
引用返信 編集キー/
■69714 / inTopicNo.5)  Re[3]: コンソールアプリケーションでのフォルダ作成
□投稿者/ WebSurfer (166回)-(2014/01/23(Thu) 01:42:40)
No69713 (あいうー さん) に返信
> ■No69709 (WebSurfer さん) に返信
>
> なにぶん当方は初心者なもので、
> 様々なサイトを漁りましたが、理解しがたいものばかりです
>
> 初心者向けのサイトも巡りましたが、あまり理解できずに
> 、
> と甘い気持ちでやったのが悪いですね
>
> わからない点は、ファイル名自分で入力可能にする点
> var name = Console .ReadLine();
>
> これをどうやったらファイル名にすることができるのか、
>
> そして、ファイルを連番のように連番数を入力指定するには
> どうしたらよいのか、ということが知りたいです

その知識レベルですと、回答者に全部コードを書いてもらわないとダメそうですが、それを
掲示板で赤の他人に期待するのはどうかと思います。少なくとも自分はお役に立てません。

ただ「何かプログラムでも作れば少しは理解できるだろう」というのはその通りですので、
まずは自分で調べて、自分でできるところまで作ってみてください。その上でどうしても分
からないところを質問すれば、回答が得やすいと思います。

それから、初心者の方が勉強するなら、初心者向けの本などを買って体系的に行うことをお
勧めします。ネットの情報は初心者向けでないことが多いですから。
引用返信 編集キー/
■69715 / inTopicNo.6)  Re[3]: コンソールアプリケーションでのフォルダ作成
□投稿者/ 魔界の仮面弁士 (508回)-(2014/01/23(Thu) 01:58:27)
No69713 (あいうー さん) に返信
> わからない点は、ファイル名自分で入力可能にする点

ファイル名……ですか?

最初の質問に、「フォルダ作成」の話はありましたが、
「ファイル」の話は無かったと思います。

一つのフォルダーの中に、複数の連番ファイルを配置したいということでしょうか?
それとも、(ファイル名ではなく)フォルダー名のことでしょうか?


> var name = Console .ReadLine();
入力はそれで良いと思いますよ。
実行したら、画面に適当な名前を入れて Enter キーを押せば、
変数 name に、その文字列がセットされます。

あとはそれを、フォルダーの名前なり、ファイルの名前なりとして
利用すれば良いことになります。

たとえば、現在の場所にフォルダーを一つ作るならこんな感じです。

class Program
{
  static void Main()
  {
    var name = Console.ReadLine();
    System.IO.Directory.CreateDirectory(name);
  }
}

※先ほどの回答では、 Directory.Create と回答してしまいましたが、
 正しくは上記のとおり、Directory.CreateDirectory です。失礼しました。


上記を実行して、たとえば「TEST」と入力して Enter キーを押すと、
現在の場所(特に指定しなければ EXE のある位置)に、TEST フォルダーが生成されます。

もし、TEST1、TEST2、TEST3 と続けて作成したいのであれば、
 System.IO.Directory.CreateDirectory(name + "1");
 System.IO.Directory.CreateDirectory(name + "2");
 System.IO.Directory.CreateDirectory(name + "3");
のように、「+ 演算子」で文字列連結すれば OK です。


上記では 3 個固定のコードで書いていますが、作成される数を
変更できるようにしたいのであれば、ループ処理を用いましょう。

 var name = Console.ReadLine();
 for (int i = 1; i <= 9; i++)
 {
  System.IO.Directory.CreateDirectory(name + i);
 }

たとえば上記では、1〜9 まで 9 個のファイルが作成されます。
「1」や「9」と書かれている部分を別の値にして、動作を確認してみてください。
最終的には、その個数もユーザーに入力させるようにすると良いでしょう。



> これをどうやったらファイル名にすることができるのか、
上記のように、+ 演算子で文字列連結することができます。

別のディレクトリーに配置したいような場合には、
System.IO.Path.Combine メソッドで、パスを連結しても良いでしょう。

 // 既に存在しているフォルダー名を用意
 var baseFolder = @"C:\あいう";

 // その下に、変数nameで指定された名前を連結
 var newPath = System.IO.Path.Combine(baseFolder, name);

 // フォルダーを作成
 System.IO.Directory.CreateDirectory(name);


たとえば上記の場合、name に「SAMPLE」という文字列が渡されていれば、
newPath には「C:\あいう\SAMPLE」という文字列がセットされ、
その結果、「C:\あいう」の下に「SAMPLE」フォルダーが作成されることになります。


> そして、ファイルを連番のように
フォルダーではなく、あくまでもファイルということであれば、
とりあえず 0 バイトのファイルを作成するために、
  System.IO.File.WriteAllText(fileName, null);
のようなコードを利用できます。
変数fileNameにはファイルの名前またはフルパスを指定してください。


> 連番数を入力指定するには
今回紹介した「for (int i = 1; i <= 9; i++)」という構文の
「9」の数字を指定させるのであれば、たとえば

 var count = Convert.ToInt32(Console.ReadLine());
 for (int i = 1; i <= count; i++)
 {

などのように書けます。
(実行する時には、数値以外を入力してしまわないように注意してくださいね)
引用返信 編集キー/
■69726 / inTopicNo.7)  Re[4]: コンソールアプリケーションでのフォルダ作成
□投稿者/ あいうー (3回)-(2014/01/24(Fri) 17:21:45)
何から何まで申し訳ない・・・
今度からはなるべく勉強します。

そして、自立できるよう頑張ります
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -