3

クライアントによって送信/アップロードされたファイルを特定のフォルダーに保存する FTP サーバーがあります。クライアントは、名前が同じで拡張子が異なる 3 つのファイルをアップロードします。たとえば、クライアントは file1.ext1、file1.ext2、および file1.ext3 を送信します。同じ名前 ("file1") のファイルを見つけて圧縮するのに役立つコードを探しています。どんな助けでも大歓迎です。フォルダー内のすべてのファイルの名前を取得するこのコードを作成しました。

string path = "somepath";
String[] FileNames = Directory.GetFiles(path);
4

3 に答える 3

5

への呼び出しで、ファイル拡張子にアスタリスク ワイルドカードを使用しますGetFiles。例:

 List<string> files = Directory.GetFiles(pathName, "SpecificFileName.*");

または:

 string[] files = Directory.GetFiles(pathName, "SpecificFileName.*");
于 2013-04-17T04:56:29.087 に答える
0

以下のコードを試すことができます。これにより、ファイル名自体にドットが含まれている場合も解決されます。

        string[] fileNames = Directory.GetFiles(path);

        List<string> fileNamesWithoutExtension = new List<string>(); 
        List<string> myFiles = new List<string>();

        string myFile = mySearchFileWithoutExtension;

        foreach (string s in fileNames)
        {
            char[] charArray = s.ToCharArray();

            Array.Reverse(charArray);
            string s1 = new string(charArray);

            string[] ext = s1.Split(new char[] { '.' }, 2);

            if ((ext.Length > 1))
            {
                char[] charArray2 = ext[1].ToCharArray();

                Array.Reverse(charArray2);

                fileNamesWithoutExtension.Add(new string(charArray2));

                if ((new string(charArray2)).Trim().Equals(myFile))
                {
                    myFiles.Add(s);
                }
            }
        }

拡張子のないファイルのリスト: fileNamesWithoutExtension

必要なファイルのセット: myFiles

于 2013-04-17T04:39:50.977 に答える