如何将子文件夹和文件的创建限制在一个位置?

克莱·香农(B. Clay Shannon)

我的应用程序生成电子表格文件和子文件夹以对其进行分类,然后将它们存储在网络上的共享文件夹中;它工作正常-该网络位置存在:

\\storageblade\cs\REPORTING\RoboReporter

...,然后该应用会根据需要动态为其添加子文件夹,例如:

\\storageblade\cs\REPORTING\RoboReporter\ABUELOS

...依次获得自己的子文件夹,例如:

\\storageblade\cs\REPORTING\RoboReporter\ABUELOS\20161230_1336

...哪些最终子文件夹包含生成的电子表格文件。

我正在保存动态创建的子文件夹和.xlsx文件,如下所示:

String _uniqueFolder = RoboReporterConstsAndUtils.uniqueFolder;
var fromDate = _delPerfBeginDate.ToString("yyyyMMdd");
var toDate = _delPerfEndDate.ToString("yyyyMMdd");
var sharedFolder = String.Format(@"\\storageblade\cs\REPORTING\RoboReporter\{0}", _uniqueFolder);
RoboReporterConstsAndUtils.ConditionallyCreateDirectory(sharedFolder);
var filename = String.Format("{0}\\{1} - Delivery Performance - from {2} to {3}.xlsx", sharedFolder,
    _unit, fromDate, toDate);

if (File.Exists(filename))
{
    File.Delete(filename);
}
Stream stream = File.Create(filename);
package.SaveAs(stream);
stream.Close();
package.Save();

就像我说的那样,它工作正常-文件夹和文件在共享的网络位置中创建。

但是,子文件夹也在.exe所在的文件夹中创建。例如,在开发机上,这些最终以C:\ Projects \〜\ bin \ Debug结尾,因此我有很多子文件夹,例如:

C:\Projects\~\bin\Debug\ABUELOS\20161230_0908

...以及在我放置.exe的文件夹中的“实时”计算机上(以及它们所属的共享网络区域中)。

这是神秘的ConditionallyCreateDirectory()方法:

internal static void ConditionallyCreateDirectory(string dirName)
{
    Directory.CreateDirectory(dirName);
}

为什么?更重要的是,如何防止这种情况发生?我不需要将文件存储量增加一倍-其中一些文件很大,最终会导致计算机故障,这将导致网络故障,这将导致业务失败,这将使我自己受邀离开处所等

更新

为了回答OfirW的评论/问题,我认为以下是相关部分:

RoboReporterConstsAndUtils;

public static string uniqueFolder = String.Empty;
. . .
internal static string GetUniqueFolder(string _unit)
{
    return uniqueFolder = String.Format("{0}\\{1}", _unit.ToUpper(), GetYYYYMMDDHHMM());
}

internal static void ConditionallyCreateDirectory(string dirName)
{
    Directory.CreateDirectory(dirName);
}

在其他地方如何引用它:

RoboReporterConstsAndUtils.ConditionallyCreateDirectory(RoboReporterConstsAndUtils.GetUniqueFolder(_unit));
                String _uniqueFolder = RoboReporterConstsAndUtils.uniqueFolder;

_unit在构造函数中分配:

public PriceComplianceRpt_EPPlus(DateTime begin, DateTime end, String unit)
{
    _begDate = begin;
    _endDate = end;
    _unit = unit;
}

...这样称呼:

internal static void GenerateAndSavePriceComplianceReport(QueuedReports qr)
{
    var pcr = new PriceComplianceRpt_EPPlus(qr.StartDateRange, qr.EndDateRange, qr.Unit);
    pcr.GeneratePriceComplianceRpt();
}
奥菲尔·怀恩花园

此行是创建附加目录的位置:

RoboReporterConstsAndUtils.ConditionallyCreateDirectory(RoboReporterConstsAndUtils.GetUniqueFolder(_unit));

你为什么要这么做?我认为您可以在RoboReporterConstsAndUtils中更改此类:

public static string uniqueFolder = String.Empty;
. . .
internal static void SetUniqueFolder(string _unit)
{
    uniqueFolder = String.Format("{0}\\{1}", _unit.ToUpper(), GetYYYYMMDDHHMM());
}

internal static void ConditionallyCreateDirectory(string dirName)
{
    Directory.CreateDirectory(dirName);
}

并替换为:

RoboReporterConstsAndUtils.ConditionallyCreateDirectory(RoboReporterConstsAndUtils.GetUniqueFolder(_unit));
String _uniqueFolder = RoboReporterConstsAndUtils.uniqueFolder;

有了这个:

RoboReporterConstsAndUtils.SetUniqueFolder(_unit));
String _uniqueFolder = RoboReporterConstsAndUtils.uniqueFolder;

就是这样想

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用该位置的相对路径在一个位置中创建多个文件夹?

将文件夹结构(无文件)从一个位置复制到另一个位置

如何将一个文件夹及其所有子文件夹和文件复制到另一个文件夹

如何将文件从资源内部的子文件夹复制到SpringBoot项目资源内部的另一个子文件夹

如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

将.svn文件夹更改为Tortoise SVN中的另一个位置

如何删除一个文件夹,但将所有子文件夹和文件保留在一个git分支中?

如何将文件从模型文件夹移动到另一个文件夹?

Perforce-将文件夹映射到服务器上的另一个位置

将特定文件夹从一个位置复制到另一个Python

NPM:创建一个NPM包,将文件和文件夹添加到项目根目录

如何将文件的文件夹移动到一个可变名称的文件夹

如何将一个文件复制到所有子文件夹

AppleScript-将文件夹从一个位置复制到另一个位置时,排除某些文件

如何将某个位置的文件和子文件夹归档到Linux中的另一个位置

需要一个Powershell脚本,该脚本会将文件夹和文件从一个位置移动到另一个位置

同步两个文件夹,成功后将一个文件从一个位置复制到另一个

如何将源文件夹名称附加到复制到 vbs 中另一个位置的文件?

如何将一个文件夹复制到另一个文件夹

通过排除具有特定名称的所有子文件夹将文件夹复制到另一个位置

将文件从一个位置移动到另一个位置并排除子文件夹

如何将特定模式的子文件夹移动到另一个文件夹,使用 bash 保持结构?

如何将所有子文件夹移动到另一个文件夹保存树?

如何将文件夹中的多个文件压缩到一个压缩文件夹中?

如何将文件夹及其所有子文件夹和文件递归设置为 drwxrwxrwx

(Swift) 如何在一个文件夹中创建子文件夹

如何使用一个位置路径从多个文件夹创建多个表,雅典娜也应该使用胶水爬虫来处理它

如何为每个创建的项目创建一个带有子文件夹的文件夹?

仅当另一个文件夹中不存在子文件夹和文件时,才从一个文件夹复制子文件夹和文件