2014-10-28 3 views
-1

Я создаю функцию, которая использует введенный пользователем каталог и переданную строку для создания .txt со строкой в ​​нем. Вот мой код:Аргументы действительны, но не работают в C#

private void MakeTheTxt(string theTest) 
{ 
    string fileName = @textBoxDirectory.Text; 
    try 
    { 
     File.WriteAllLines(fileName, theTest); 
    } 
    catch (DirectoryNotFoundException e) 
    { 
     MessageBox.Show("Please enter a valid directory."); 
    } 
} 

WriteAllLines() функция говорит аргументы не действуют. Я просмотрел параметры этой функции, и одно из перегруженных определений - public static void WriteAllText(string path, string contents);. Я даю функции правильные типы аргументов, но она не работает. Какие-либо предложения?

+0

По http://msdn.microsoft.com/en-us/library/system.io.file.writealllines(v=vs.110).aspx нет перегрузки, которые принимают 'string' для второго аргумента. В какой документации вы * смотрите? – BradleyDotNET

ответ

3

Там нет перегрузки WriteAllLines, которая принимает два string с.

Возможно, вы захотите использовать File.WriteAllText, который имеет, имеет перегруженность (string path, string contents).

File.WriteAllText(fileName, theTest); 
+0

Хороший улов на аналогично названной функции, которая * делает * имеет перегрузку, которую он хочет. – BradleyDotNET

+0

+1 да, приятно поймать! –

+0

Спасибо! Я просто неправильно понял определение, я действительно смотрел на эту функцию. – SteveGoob

1

Второй параметр должен быть строковым массивом, и вы передаете ему строку.

Try что-то вроде:

File.WriteAllLines(fileName, new[]{theTest}); 
Смежные вопросы