zoukankan      html  css  js  c++  java
  • C#生成字母和数字组成的随机文件

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    using System.Collections;
    using System.IO;
    
    namespace FileGenerator
    {
        
        class Program
        {
            
            static void Main(string[] args)
            {
                Program program = new Program();
                //IDictionary<string, string> dictionary = (IDictionary<string, string>)ConfigurationSettings.GetConfig("App.config");
                string path = ConfigurationManager.AppSettings["path"];
                int miniSize = int.Parse(ConfigurationManager.AppSettings["miniSize"]);
                int maxSize = int.Parse(ConfigurationManager.AppSettings["maxSize"]);
                long quantity = long.Parse(ConfigurationManager.AppSettings["quantity"]);
                string prefix = ConfigurationManager.AppSettings["prefix"];
    
                
                //Console.WriteLine(path);
                //Console.ReadLine();
                DirectoryInfo directory = new DirectoryInfo(path);
                if (!directory.Exists)
                {
                    Directory.CreateDirectory(path);
                }
                int j = 0;
                while (j < quantity)
                {
                    j++;
                    string fileName = path + prefix + "_";
                    Random random = new Random();
                    for (int i = 1; i <= 10; i++)
                    {
                        fileName = fileName + random.Next(10);
                    }
                    FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
                    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"));
                    try
                    {
                        string content = program.GetFileContent(miniSize, maxSize);
                        
                        sw.Flush();
                        sw.BaseStream.Seek(0, SeekOrigin.Begin);
                        sw.WriteLine(content);
                        sw.Flush();
                        sw.Close();
                        //char[] contentChar = content.ToCharArray();
                        //Encoder encoder = Encoding.UTF8.GetEncoder();
                        //byte[] bytes = new byte[4096];
                        //encoder.GetBytes(contentChar, 0, contentChar.Length, bytes, 0, true);
                        //fs.Seek(0, SeekOrigin.Begin);
                        //fs.Write(bytes, 0, bytes.Length);
                        //fs.Close();
                    }
                    catch (IOException)
                    {
                        continue;
                        sw.Close();
                        
                        
                    }
                }
    
            }
    
            public string GetFileContent(int miniSize, int maxSize)
            {
                List<string> strList = new List<string>();
                for (int i = 65; i < 90; i++)
                {
                    char aa = (char)i;
                    strList.Add(aa.ToString());
                }
                for (int i = 97; i < 122; i++)
                {
                    char aa = (char)i;
                    strList.Add(aa.ToString());
                }
                char[] number = new char[10];
                for (int i = 48; i <= 57; i++)
                {
                    char aa = (char)i;
                    strList.Add(aa.ToString());
                    number[i - 48] = aa;
                }
                string content = "";
                double size = (miniSize + (maxSize - miniSize) * new Random().NextDouble())*1024;
                for (int i = 0; i < size; i++)
                {
                    Random random = new Random();
                    int index = random.Next(strList.Count-1);
                    content = content + strList[index];
                    //content = content + strList[strList.Count];
                }
                return content;
            }
        }
    }

    配置文件App.config信息:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="path" value="D:SourceFoldersftptest"/>
        <add key="miniSize" value="20"/>
        <add key="maxSize" value="40"/>
        <add key="quantity" value="10"/>
        <add key ="prefix" value="test"/>
      </appSettings>
    </configuration>

    注意两点:

    1.App.Config的格式要严格按照上面这个格式来写

    2.build之后,App.config名字会变成程序名称加config,exe和config要在一个目录下

  • 相关阅读:
    CentOS修改hosts文件及生效命令
    Elasticsearch处理 空对象问题
    Windows查看某个端口被占用的解决方法
    PHP Fatal error: Uncaught Error: Class ‘\Elasticsearch\Serializers\SmartSerializer‘ not found in /h
    浏览器正常导出文件phpecxel
    ElasticsearchPHP 快速开始
    MySQL为什么选择B+树存储索引
    PHP7.3.0+弃用FILTER_FLAG_SCHEME_REQUIRED的解决办法
    Zoom支持自动生成字幕;SharePlay上线;Safari 更新导致大量bug |WebRTC风向
    日均请求量1.6万亿次背后,DNSPod的秘密国密DoH篇
  • 原文地址:https://www.cnblogs.com/middlesummer/p/3760794.html
Copyright © 2011-2022 走看看