这是一个基于控制台C#的程序
我想循环创建目录创建。我正在使用以下方法复制目录(请忽略使用现在执行的操作...我只是希望设备编号正确且位于正确的位置)。现在让我们说我们每次都手动运行应用程序。我希望列表的命名和编号作为每次执行的后续操作,它应该按如下方式构建一个列表...
C:\\某些位置\\设备
在位置内......
等等......换句话说,我需要某种循环来用下一个索引替换设备的命名
这是使用中的方法......
True - 默认用于复制子目录,而不仅仅是目标目录
DirectoryCopy(path, @"C:\\Custom Location to duplicate to", true);
方法实施:
private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
if (Directory.Exists(sourceDirName))
{
cancontinue = true;
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
//Make an Array of Directories found on The Device
DirectoryInfo[] dirs = dir.GetDirectories();
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
else
{
//Provide a Device Listing. Here is Where I am Stuck
for (int i = 1; i < 11; i++)
{
if (Directory.Exists(destDirName))
{
destDirName = destDirName + "\\Device\\ " + i.ToString();
}
else
{
break;
}
}
Directory.CreateDirectory(destDirName);
}
以下是以相同方式复制Sub目录的循环。当前解决方案提供以下输出...
C:\ Custom Location \ Devices \ Device 1 \ Contents
在设备1中,第二个设备将复制并在其中复制,依此类推。
我想自定义它复制到的路径,到机器名称(用于发布目的)
//This Gets the Name Perfectly + The Added Desired Path Below
string MachineName = System.Environment.MachineName;
string DesiredPath = "\\Desktop\\Program\\";
DirectoryCopy(path, @"C:\Users\" + MachineName + DesiredPath, true);
问题这是我得到访问被拒绝错误???这是为什么?有工作吗?
答案 0 :(得分:1)
问题1:
for循环不应覆盖destDirName变量:
private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
if (Directory.Exists(sourceDirName))
{
cancontinue = true;
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
//Make an Array of Directories found on The Device
DirectoryInfo[] dirs = dir.GetDirectories();
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
//Provide a Device Listing. Here is Where I am Stuck
for (int i = 1; i < 11; i++)
{
string tmp = destDirName + "\\Device\\ " + i.ToString();
if ( ! Directory.Exists(tmp))
{
Directory.CreateDirectory(tmp);
// !!!
// here apply your function to copy
// from sourceDirName to directory in tmp variable
break;
}
}
}
}
问题2
我打赌你没有权利在c:\ Users \中创建目录 尝试以管理员身份执行此操作
答案 1 :(得分:0)
好的,我知道我的问题是什么。固定它。 2件事错了......
其次使用目录信息我创建了一个数组来检查我的目的地路径是什么(我已经将设备1设置为无限的设备)然后使用计数器添加了一个新的设备启用设备列表目录
if(!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
else
{
DirectoryInfo dircheck = new DirectoryInfo(destDirName);
DirectoryInfo[] dirscheck = dircheck.GetDirectories();
//Start at Device 1
int count = 1;
Item presents each file in the Destination directory
foreach (var item in dirscheck)
{
//If the FileName (Lets say Device 1) contained the count which is 1 then increment... Do so until you reach the last index of a device.
if (item.Name.Contains(count.ToString()))
{
count++;
}
}
//Give the Destination directory the name of the last index of the count + 1
destDirName = holdoriginal + "Device " + count + "\\";
Directory.CreateDirectory(destDirName);
}