У меня так много проблем с моим проектом, я действительно не знаю с чего начать. Во-первых, я получаю сообщение об ошибке «ссылка на объект требуется для нестатического поля, метода или свойства». Он подчеркивает retPath (строка: DriveRecursion_results.DriveRecursion (retPath);). Я не знаю, как это исправить.Проблемы с ListView & File Output
Другое, что я все еще в тупике, это как заполнить список в моей Windows Form. Я хочу список файлов, которые нужно переименовать (по сравнению со списком всех файлов в моем списке.)
Может кто-нибудь помочь? Я уже несколько часов борется с этим.
Вот мой код:
Form1.cs:
namespace FileMigration
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FolderSelect("Please select:");
}
public string FolderSelect(string txtPrompt)
{
//Value to be returned
string result = string.Empty;
//Now, we want to use the path information to population our folder selection initial location
string initialCheckoutPathDir = (@"C:\");
System.IO.DirectoryInfo info = new System.IO.DirectoryInfo(initialCheckoutPathDir);
FolderBrowserDialog FolderSelect = new FolderBrowserDialog();
FolderSelect.SelectedPath = info.FullName;
FolderSelect.Description = txtPrompt;
FolderSelect.ShowNewFolderButton = true;
if (FolderSelect.ShowDialog() == DialogResult.OK)
{
string retPath = FolderSelect.SelectedPath;
if (retPath == null)
{
retPath = "";
}
DriveRecursion_Results ds = new DriveRecursion_Results();
ds(retPath);
result = retPath;
//Close this form.
}
return result;
}
}
}
Здесь вы DriveRecursion_Results.cs:
namespace FileMigration
{
public partial class DriveRecursion_Results : Form
{
public DriveRecursion_Results()
{
InitializeComponent();
}
private void fileOutput_SelectedIndexChanged(object sender, EventArgs e)
{
}
public void DriveRecursion(string retPath)
{
// string[] files = Directory.GetFiles(retPath, "*.*", SearchOption.AllDirectories);
string pattern = " *[\\~#%&*{}/<>?|\"-]+ *";
string replacement = "";
Regex regEx = new Regex(pattern);
string[] fileDrive = Directory.GetFiles(retPath, "*.*", SearchOption.AllDirectories);
List<string> filePath = new List<string>();
foreach (string fileNames in fileDrive)
{
if (regEx.IsMatch(fileNames))
{
filePath.Add(fileNames);
//I tried adding my listview (fileOptions) here but I cannot for some reason
}
}
}
}
}
Любая помощь будет действительно оценили :(Кто-нибудь есть какие-либо идеи о том, как изменить мой код, чтобы он действительно работал?
EDITED: теперь оба метода нестационарны и позаботились об ошибке, полученной с помощью retPath. Тем не менее, у кого-нибудь есть идеи для проблемы №2 с отображением списка, вывод только из файлов, которые нужно переименовать? – yeahumok
Какой код вы уже пробовали для добавления элементов в список? Теперь, когда метод не является статическим, вы должны просто вызвать ListView.Items.Add («Item»); –
Я сделал это - однако, когда я запускал свое приложение, я только получил диалог для выбора диска и папки и НЕ списка. это b/c, я ничего не помещал в private void fileOutput_SelectedIndexChanged (отправитель объекта, EventArgs e)? Если это так, то что мне нужно добавить туда, чтобы убедиться, что мое приложение знает, чтобы отобразить список с выходом файлов, которые нужно изменить? – yeahumok