我的设计师有这个:
右侧是listView1中的文件。 左侧是此文件treeView1的目录主目录。
我在菜单条项目点击事件中有此代码:
void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Upload")
{
List<String> selected = new List<String>();
foreach (ListViewItem lvi in listView1.SelectedItems)
{
selected.Add(lvi.Text);
}
AllFiles = selected.ToArray();
Bgw.RunWorkerAsync();
}
}
问题是AllFiles数组中的文件只是文件名,例如:bootmgr或install.exe
但是我需要在所有文件中,每个文件也都有它的完整路径,例如:
c:\ bootmgr或c:\ install.exe或c:\ test \ test \ example.txt
我如何向AllFiles添加路径?
我现在试过了:
void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Upload")
{
List<String> selected = new List<String>();
string dir = treeView1.SelectedNode.FullPath;
foreach (ListViewItem lvi in listView1.SelectedItems)
{
string g = Path.Combine(dir, lvi.Text);
selected.Add(g);
}
AllFiles = selected.ToArray();
Bgw.RunWorkerAsync();
}
}
在form1中:
private void FtpProgress_DoWork(object sender, DoWorkEventArgs e)
{
f = new FtpSettings();
f.Host = "ftP://ftp.newsxpressmedia.com";
f.Username = "...";
f.Password = "...";
files = TV_LV_Basic.ExplorerTree.AllFiles;
StringArrayUploadFiles(sender, e);
}
AllFiles包含文件和路径,例如C:\ test.txt
然后:
private void StringArrayUploadFiles(object sender, DoWorkEventArgs e)
{
try
{
foreach (string txf in files)
{
string fn = txf;
BackgroundWorker bw = sender as BackgroundWorker;
if (f.TargetFolder != "" && f.TargetFolder != null)
{
createDirectory(f.TargetFolder);
}
else
{
f.TargetFolder = Path.GetDirectoryName(txf);
//createDirectory(f.TargetFolder);
}
string UploadPath = String.Format("{0}/{1}{2}", f.Host, f.TargetFolder == "" ? "" : f.TargetFolder + "/", Path.GetFileName(fn));
现在在txf例如我有C:test.txt 然后在f.TargetFolder中我有:C:
然后在UploadPath中我有:ftp://ftp.newsxpressmedia.com/C:/eula.1031.txt 但是C:我需要它看起来像:ftp://ftp.newsxpressmedia.com/C/eula.1031.txt
然后有子目录,例如:ftp://ftp.newsxpressmedia.com/C/Sub/Dir/eula.1031.txt
在menuStrip1_ItemClicked事件中,当我选择一个文件,例如test.txt已经在这个事件中,我做了一团糟。
答案 0 :(得分:1)
FileInfo fi = new FileInfo("temp.txt");
确定刚刚创建的文件的完整路径。
DirectoryInfo di = fi.Directory;
找出该目录中的其他条目。
FileSystemInfo[] fsi = di.GetFileSystemInfos();
在控制台
中显示directoryinfo fullnameConsole.WriteLine("The directory '{0}' contains the following files and directories:", di.FullName);
打印该目录的所有文件和子目录的名称。
foreach (FileSystemInfo info in fsi)
Console.WriteLine(info.Name);