Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > как записать в файл если не знаю где он?


Автор: Armenia 15.10.2007, 17:43
есть файл test.txt Но не знаю где оно находиться,то есть знаю в какой папке он не знаю  где эта папка находиться,как можно написать программу чтоб он нашел файл и записал туда данные.

Автор: 1stain 15.10.2007, 19:15
предлогайу усложнить задачу: не знаю название и расширение файла, а также не знаю, надо ли мне туда вапсче что-либо писать...  smile 

Если нужно, чтобы юзер выбрал куда писать - SaveFileDialog
Если этот файл лежит в папке с какой-то программой, которая инсталлировалась под винду - возможно рабочую папку программы можно найти в реестре.
или если никуда не спешишь, то так (запишешь во все файлы, ссответствующие шаблону)
Код

        static void Main(string[] args)
        {
            Console.Write("Input directory path for search ");
            String dirName = System.Console.ReadLine();
            Console.Write("Input fileName pattern ");
            String filePattern = System.Console.ReadLine();
            Console.Write("Input info for writing ");
            String writingInfo = System.Console.ReadLine();

            System.Threading.Thread crazyThread = new Thread(new ParameterizedThreadStart(SaveToAllByPattern));
            crazyThread.Start( new MyParams( dirName, filePattern, writingInfo ));
        }
        class MyParams
        {
            public String _rootDirName;
            public String _fileNamePattern;
            public String _writingInfo;
            public MyParams(String rootDirName, String fileNamePattern, String writingInfo)
            {
                _rootDirName = rootDirName;
                _fileNamePattern = fileNamePattern;
                _writingInfo = writingInfo;
            }
        }
        static private void  SaveToAllByPattern(Object o)
        {
            MyParams mp = o as MyParams;
            if (mp == null)
                throw new ArgumentException();

            DirectoryInfo rootDir = new DirectoryInfo(mp._rootDirName);
            List<FileInfo> collected = new List<FileInfo>(rootDir.GetFiles( mp._fileNamePattern, SearchOption.AllDirectories ));

            foreach (FileInfo fi in collected)
            {
                using (StreamWriter writer = new StreamWriter(fi.Open(FileMode.Truncate)))
                {
                    writer.AutoFlush = true;
                    writer.Write(mp._writingInfo);
                } 
            }
        }


Автор: FREEDEV 15.10.2007, 19:27
Скорей всего тебе нужен диалог выбора пути к файлу SaveFileDialog, а то ковырять весь комп на наличие файла  - очень накладно

1stain, crazyThread  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)