.CIDファイル名の一部がディレクトリ名の一部と一致する場合、ディレクトリに移動する.CIDファイルがあります。C#ファイル名の一部がフォルダ名と一致する場合にファイルを移動する場合
ここは、いくつかのサンプルディレクトリです:ここでは
S002016-P063 // projectnumber-panelnumber
S002016-P066
S002016-P067
は、いくつかのサンプルファイル名です:
P063-1.LEFT.CID // move to S002016-P063 directory
P063-10.RIGHT.CID // move to S002016-P063 directory
P066-2_P066-5.LEFT.CID // move to S002016-P066 because P066 == P066
P067-12.LEFT.CID // move to S002016-P067
P067-5_P063-2.RIGHT.CID // leave file where it’s at because P067 != P063
今私は物理的に適切なディレクトリにこれらのファイルを移動するが、私はそれを使用して行うことができると仮定しますコンソールアプリケーション。正規表現クラスと多分マッチメソッドを使ってif文を設定する必要があるのでしょうか?私はC#の初心者です。ここまで私がこれまで持っていたことがあります。基本的に、コンソールアプリケーションは指定されたディレクトリ内のディレクトリとファイルを一覧表示します。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello and Welcome to the File Sorting Program"); // Displays Text in Quotes
Console.WriteLine(); // Adds a Space
string[] fileEntries = Directory.GetDirectories(@"\\Users\none\Documents\File Sorter"); // Regex for panel number = -([A-Z0-9a-z\-]+)
System.Console.WriteLine("Directories in the Folder: ");
Console.WriteLine(); // Adds a Space
foreach (string fileName in fileEntries)
{
Console.WriteLine(Path.GetFileName(fileName)); // Lists the directories found in the "File Sorter" directory
}
Console.WriteLine(); // Adds a Space
Console.WriteLine(); // Adds a Space
string[] files = Directory.GetFiles(@"\\Users\none\Documents\File Sorter", "*.CID"); // Regex for panel number = ([A-Z0-9a-z\-]+)-
System.Console.WriteLine("Files in this Folder: "); // Displays Text in Quotes
Console.WriteLine(); // Adds a Space
foreach (string file in files)
{
Console.WriteLine(System.IO.Path.GetFileNameWithoutExtension(file)); // Lists each file minus .CID found in the "File Sorter" directory
}
Console.WriteLine("Press any key to exit."); // Displays Text in Quotes
System.Console.ReadKey();
}
}
これは問題ではありませんが、問題が発生しますか?もしそうなら、それは何ですか?具体的に言えば、人々は単にコードを完成させるだけではありません。私は 'regex'を使うことが正しいとしか言えません。 – Mat
私のコードに問題はありません。 'regex'に関する私の質問にお答えいただき、ありがとうございます。 –