C#文件夹创建不创建所有文件夹,而仅在某些计算机上

灵魂存在

我正在编写一个自定义的工作应用程序。该应用程序将为我们的客户项目创建一个文件夹结构。我正在创建程序的机器在从代码窗口进行调试时以及在构建调试编译二进制文件后均能正常工作。创建文件夹没问题。另一台测试机器,旧的win7机器,运行正常,没有问题。

我将二进制应用程序文件交给我的同事进行测试,尝试创建文件夹的下一部分时会引发错误。(最后的错误)

他安装了.Net 4.8(正在4.7.2上运行)。我已经检查并打开了注册表中的LongFolderPath标志,但是它在我的主计算机上(而不是在Win7机器上)没有处于活动状态。我在他的机器上安装了VS,因此我们可以逐步检查代码,并在下面的代码(带符号)中发现错误。

这是添加文件夹结构的完整代码:https : //pastebin.com/E26UFeuz

这是该机器上失败的相关部分的片段。

siteTypeName = "NSB";
projectPath = "C:\\Test\\";

private void createDirectoryStructure(string siteNumber, string siteName, string siteProject)
{
...
    string[] siteProjectFolderTemplate = {   
                                         "100 - Existing Data",
                                         "200 - Site Walk Info",
                                         "300 - Drawings",
                                         "400 - Engineering",
                                         "500 - Photo Sims",
                                         "600 - Surveys",
                                         "700 - RFDS",
                                        "1000 - File Reveiw",
                                        "2000 - Leasing",
                                        "3000 - Zoning",
                                        "4000 - Permitting",
                                        "5000 - Subcontractor Services",
                                        "6000 - NTP",
                                        "7000 - SAQ File Closeout Docs",
                                        "8000 - Submittal Documents and QCs",
                                        "9000 - SCIP"
    };

...
//This is the section that breaks.
    for (int j = 0; j < siteProjectFolderTemplate.Length; j++)
    {
        System.IO.Directory.CreateDirectory(projectPath +
                                            cboClient.Text + "\\" +
                                            cboMarket.Text + "\\" +
                                            siteTypeName + "\\" +
                                            siteNumber + "_" + siteName + "\\" + siteProject + 
                                            "\\" + siteProjectFolderTemplate[j]
                                            );
    }
...
}

错误消息说明:

************** Exception Text **************
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Test\Client\Market\NSB\KSMO-P-041370_A\L2500 GSM \100 - Existing Data'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
   at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
   at System.IO.Directory.CreateDirectory(String path)
   at AE_CreateFolderStructures.frm_CreateDirectoryStructure.createDirectoryStructure(String siteNumber, String siteName, String siteProject) in C:\Code Projects\AE-CreateFolderStructures\AE-CreateFolderStructures\frm_CreateDirectoryStructure.cs:line 547
   at AE_CreateFolderStructures.frm_CreateDirectoryStructure.btnImportCSV_Click(Object sender, EventArgs e) in C:\Code Projects\AE-CreateFolderStructures\AE-CreateFolderStructures\frm_CreateDirectoryStructure.cs:line 917
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

因此回顾一下.. 3台机器,由于上述错误而在1台机器上崩溃,似乎无法在特定时间点后制作文件夹。

有任何想法吗?

灵魂存在

路径随我们创建。.它是'\ L2500 GSM \'部分末尾的空格。我使用.Trim()将其修复,该方法添加到路径构建的每个组件中。

归功于panoskarajohn

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Windows和Linux计算机上使用Java程序创建一个新文件夹

Java可以删除计算机的所有文件和文件夹吗?

如何在Angular 6+中的本地计算机上运行Dist文件夹?

从文件夹中的所有文件创建zip文件

如何从计算机的所有用户获取“我的文档”文件夹路径

.htaccess规则文件与所有子文件夹匹配(子文件夹是随机创建的)

如何在文件夹中创建所有Django应用?

C#项目:构建文件夹:在计算机上构建项目并在另一台计算机上运行

遍历文件夹和子文件夹中的所有文件并获取创建日期

我可以删除计算机上的某些文件夹吗?

我计算机上的一个神秘文件夹

从各种计算机上的通用文件夹进行单向同步

创建父文件夹时将文件列表复制到远程计算机

与计算机上的多个用户真正共享文件夹

比较两台未连接的计算机上的文件夹

C#:将PictureBox上的图像保存到计算机上的文件夹中

如何使用文件夹位置读取客户端计算机上的文件

创建文件夹时计算机无响应

什么是我的计算机上的.android文件夹和adbkey文件?

临时读取他人计算机上的EFS加密文件夹

无法在我的计算机中的所有位置运行的exe的Python文件仅在python安装中的dist文件夹中有效

将文件从远程计算机复制到远程计算机上的文件夹

如何从Windows 10计算机上删除Candycrushsaga文件夹

未在来宾计算机上创建共享文件夹

PYQT QLabel 链接以打开计算机上的文件夹

在 WPF 中创建所有子文件夹树视图

Solr 可以索引我本地计算机上包含文件的文件夹目录吗?

在 C# 中复制除某些文件夹和文件之外的所有文件夹

aws codecommit repo 文件夹由在本地计算机上运行的 git 命令覆盖