単純にファイル名を小文字化したいだけです。
古い人間は自分が見やすいように大文字や小文字を織りまぜてファイルを作ります。
まあ、別に普通に使うには何ら問題ないんですが。
「DBとかにファイル名を格納し、ソートすると爆死する」(*/∀\*)
ので一旦綺麗に小文字化しましょう。という話です。
大文字じゃないのは単に自分の好みですw
こちらが完成品のイメージです。
実際に作ったのはもうちょっと業務で使えるような文面ですが、
自分用にはこんなゆるーい表現のほうが使いやすいです。
バグも愛嬌!
エラーが出たらその時直せばいい!
100%の稼働率なんて幻想だ!
というわけでまずはデザインのソースから
あ、当然C#で作ってます(ノ∀`*)
namespace FileName_small
{
partial class Form1
{
///
/// 必要なデザイナ変数です。
///
private System.ComponentModel.IContainer components = null;
///
/// 使用中のリソースをすべてクリーンアップします。
///
/// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows フォーム デザイナで生成されたコード
///
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
///
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(141, 32);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(499, 19);
this.textBox1.TabIndex = 2;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(61, 35);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(40, 12);
this.label1.TabIndex = 1;
this.label1.Text = "フォルダ";
//
// button1
//
this.button1.Location = new System.Drawing.Point(259, 113);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(206, 23);
this.button1.TabIndex = 6;
this.button1.Text = "実行";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(61, 74);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(41, 12);
this.label2.TabIndex = 4;
this.label2.Text = "拡張子";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(141, 72);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 19);
this.textBox2.TabIndex = 5;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(344, 143);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(364, 12);
this.label3.TabIndex = 7;
this.label3.Text = "実行前に読み取り専用は外しておいてね。ハングすっからヾ(;´▽`A``アセアセ";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(505, 55);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(152, 12);
this.label4.TabIndex = 3;
this.label4.Text = "サブフォルダは見に行かないです";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(46, 8);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(613, 12);
this.label5.TabIndex = 0;
this.label5.Text = "指定したフォルダの指定した拡張子のファイルを全部小文字にリネームってか置き換え。とっても処理は雑です( v ̄▽ ̄) イエーイ♪";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F );
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(723, 162);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Name = "Form1";
this.Text = "ファイル名小文字化(というより強制リネームツール)";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
}
}
|
そしてメインのソースです。
つーかデザインより短いのよ(。-∀-)ノ
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace FileName_small
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
{
MessageBox.Show("未入力項目があります", "入力確認");
return;
}
string pass = string.Empty;
string[] files = System.IO.Directory.GetFiles(textBox1.Text, "*." + textBox2.Text,System.IO.SearchOption.TopDirectoryOnly);
if(textBox1.Text.EndsWith("\\"))
{
pass = textBox1.Text;
}
else
{
pass = textBox1.Text + "\\";
}
//小文字化
if (files.Length != 0)
{
for(int i = 0; i< files.Length;i++)
{
string filename_s = files[i].Replace(textBox1.Text, "").Replace("\\","").ToLower();
//変換
try
{
System.IO.File.Move(files[i], pass + filename_s);
}
catch
{
MessageBox.Show("変換エラーが発生しました","変換エラー");
}
}
MessageBox.Show("変換が完了しました","変換完了");
}
else
{
MessageBox.Show("条件に該当するファイルは存在しません","対象ファイルなし");
}
}
}
}
|
大文字化するならLowerしてるとこをUpperに変えるだけですし
なんか使えますかね?このソース(爆)