FileManager_Runtime_1704102200_Net4
BIN
CommonClassv2.dll
Normal file
89
DriveInfo.sln
Normal file
@@ -0,0 +1,89 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.40629.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DriveInfo", "DriveInfo\DriveInfo.vbproj", "{FEDED234-344B-4151-BBC5-67F1F5467C18}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FTP_Client", "FTP_Client\FTP_Client.csproj", "{9A2A1B46-799E-4D8E-8682-1F82963836A3}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArinLog", "[NET2]ArinLog\ArinLog.vbproj", "{E9E16A98-8F8D-4848-A27E-4571C184FB1A}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArinSetting", "[NET2]ArinSetting\ArinSetting.vbproj", "{631388D0-FADF-4C02-9536-A33E1C40F91D}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup1", "Setup1\Setup1.vdproj", "{8B1EDAA0-C548-4811-B807-13097A8343D2}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SubProject", "SubProject", "{D68BD818-D08F-4AE5-A872-6A4CD7DEC7FB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
CD_ROM|Any CPU = CD_ROM|Any CPU
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
DVD-5|Any CPU = DVD-5|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
SingleImage|Any CPU = SingleImage|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FEDED234-344B-4151-BBC5-67F1F5467C18}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.CD_ROM|Any CPU.ActiveCfg = Release
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.CD_ROM|Any CPU.Build.0 = Release
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.Debug|Any CPU.ActiveCfg = Debug
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.Debug|Any CPU.Build.0 = Debug
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.DVD-5|Any CPU.ActiveCfg = Debug
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.DVD-5|Any CPU.Build.0 = Debug
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.Release|Any CPU.ActiveCfg = Release
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.Release|Any CPU.Build.0 = Release
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.SingleImage|Any CPU.ActiveCfg = Release
|
||||
{8B1EDAA0-C548-4811-B807-13097A8343D2}.SingleImage|Any CPU.Build.0 = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{9A2A1B46-799E-4D8E-8682-1F82963836A3} = {D68BD818-D08F-4AE5-A872-6A4CD7DEC7FB}
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A} = {D68BD818-D08F-4AE5-A872-6A4CD7DEC7FB}
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D} = {D68BD818-D08F-4AE5-A872-6A4CD7DEC7FB}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
VisualSVNWorkingCopyRoot = .
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
DriveInfo.suo
Normal file
1992
DriveInfo/DataSet/ireaDataSet.Designer.vb
generated
Normal file
10
DriveInfo/DataSet/ireaDataSet.xsc
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--<autogenerated>
|
||||
This code was generated by a tool.
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TableUISettings>
|
||||
</TableUISettings>
|
||||
</DataSetUISetting>
|
||||
75
DriveInfo/DataSet/ireaDataSet.xsd
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema id="ireaDataSet" targetNamespace="http://tempuri.org/ireaDataSet.xsd" xmlns:mstns="http://tempuri.org/ireaDataSet.xsd" xmlns="http://tempuri.org/ireaDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
|
||||
<xs:annotation>
|
||||
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<Connections>
|
||||
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="ireaConnectionString" IsAppSettingsProperty="True" Modifier="Assembly" Name="ireaConnectionString (Settings)" PropertyReference="ApplicationSettings.FileManager.Settings.GlobalReference.Default.ireaConnectionString" Provider="System.Data.OleDb">
|
||||
</Connection>
|
||||
</Connections>
|
||||
<Tables>
|
||||
</Tables>
|
||||
<Sources>
|
||||
</Sources>
|
||||
</DataSource>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:element name="ireaDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="ireaDataSet" msprop:Generator_DataSetName="ireaDataSet">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="FileList" msprop:Generator_UserTableName="FileList" msprop:Generator_RowDeletedName="FileListRowDeleted" msprop:Generator_RowChangedName="FileListRowChanged" msprop:Generator_RowClassName="FileListRow" msprop:Generator_RowChangingName="FileListRowChanging" msprop:Generator_RowEvArgName="FileListRowChangeEvent" msprop:Generator_RowEvHandlerName="FileListRowChangeEventHandler" msprop:Generator_TableClassName="FileListDataTable" msprop:Generator_TableVarName="tableFileList" msprop:Generator_RowDeletingName="FileListRowDeleting" msprop:Generator_TablePropName="FileList">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="경로" msprop:Generator_UserColumnName="경로" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="경로" msprop:Generator_ColumnPropNameInTable="경로Column" msprop:Generator_ColumnVarNameInTable="column경로" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="파일명" msprop:Generator_UserColumnName="파일명" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="파일명" msprop:Generator_ColumnPropNameInTable="파일명Column" msprop:Generator_ColumnVarNameInTable="column파일명" type="xs:string" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="SrcList" msprop:Generator_UserTableName="SrcList" msprop:Generator_RowDeletedName="SrcListRowDeleted" msprop:Generator_RowChangedName="SrcListRowChanged" msprop:Generator_RowClassName="SrcListRow" msprop:Generator_RowChangingName="SrcListRowChanging" msprop:Generator_RowEvArgName="SrcListRowChangeEvent" msprop:Generator_RowEvHandlerName="SrcListRowChangeEventHandler" msprop:Generator_TableClassName="SrcListDataTable" msprop:Generator_TableVarName="tableSrcList" msprop:Generator_RowDeletingName="SrcListRowDeleting" msprop:Generator_TablePropName="SrcList">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="목록명" msprop:Generator_UserColumnName="목록명" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="목록명" msprop:Generator_ColumnPropNameInTable="목록명Column" msprop:Generator_ColumnVarNameInTable="column목록명" type="xs:string" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="WorkList" msprop:Generator_UserTableName="WorkList" msprop:Generator_RowDeletedName="WorkListRowDeleted" msprop:Generator_RowChangedName="WorkListRowChanged" msprop:Generator_RowClassName="WorkListRow" msprop:Generator_RowChangingName="WorkListRowChanging" msprop:Generator_RowEvArgName="WorkListRowChangeEvent" msprop:Generator_RowEvHandlerName="WorkListRowChangeEventHandler" msprop:Generator_TableClassName="WorkListDataTable" msprop:Generator_TableVarName="tableWorkList" msprop:Generator_RowDeletingName="WorkListRowDeleting" msprop:Generator_TablePropName="WorkList">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="원본경로" msprop:Generator_UserColumnName="원본경로" msprop:nullValue="_empty" msprop:Generator_ColumnVarNameInTable="column원본경로" msprop:Generator_ColumnPropNameInTable="원본경로Column" msprop:Generator_ColumnPropNameInRow="원본경로" type="xs:string" default="" minOccurs="0" />
|
||||
<xs:element name="원본파일명" msprop:Generator_UserColumnName="원본파일명" msprop:nullValue="_empty" msprop:Generator_ColumnVarNameInTable="column원본파일명" msprop:Generator_ColumnPropNameInTable="원본파일명Column" msprop:Generator_ColumnPropNameInRow="원본파일명" type="xs:string" default="" minOccurs="0" />
|
||||
<xs:element name="대상경로" msprop:Generator_UserColumnName="대상경로" msprop:nullValue="_empty" msprop:Generator_ColumnVarNameInTable="column대상경로" msprop:Generator_ColumnPropNameInTable="대상경로Column" msprop:Generator_ColumnPropNameInRow="대상경로" type="xs:string" default="" />
|
||||
<xs:element name="대상파일명" msprop:Generator_UserColumnName="대상파일명" msprop:nullValue="_empty" msprop:Generator_ColumnVarNameInTable="column대상파일명" msprop:Generator_ColumnPropNameInTable="대상파일명Column" msprop:Generator_ColumnPropNameInRow="대상파일명" type="xs:string" default="" />
|
||||
<xs:element name="구분" msprop:Generator_UserColumnName="구분" msprop:nullValue="_empty" msprop:Generator_ColumnVarNameInTable="column구분" msprop:Generator_ColumnPropNameInTable="구분Column" msprop:Generator_ColumnPropNameInRow="구분" type="xs:string" default="" minOccurs="0" />
|
||||
<xs:element name="성공" msprop:Generator_UserColumnName="성공" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="성공" msprop:Generator_ColumnPropNameInTable="성공Column" msprop:Generator_ColumnVarNameInTable="column성공" type="xs:string" default="" minOccurs="0" />
|
||||
<xs:element name="오류" msprop:Generator_UserColumnName="오류" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="오류" msprop:Generator_ColumnPropNameInTable="오류Column" msprop:Generator_ColumnVarNameInTable="column오류" type="xs:string" default="" />
|
||||
<xs:element name="seq" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_UserColumnName="seq" msprop:Generator_ColumnVarNameInTable="columnseq" msprop:Generator_ColumnPropNameInRow="seq" msprop:Generator_ColumnPropNameInTable="seqColumn" type="xs:int" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="subdir" msprop:Generator_UserTableName="subdir" msprop:Generator_RowDeletedName="subdirRowDeleted" msprop:Generator_RowChangedName="subdirRowChanged" msprop:Generator_RowClassName="subdirRow" msprop:Generator_RowChangingName="subdirRowChanging" msprop:Generator_RowEvArgName="subdirRowChangeEvent" msprop:Generator_RowEvHandlerName="subdirRowChangeEventHandler" msprop:Generator_TableClassName="subdirDataTable" msprop:Generator_TableVarName="tablesubdir" msprop:Generator_RowDeletingName="subdirRowDeleting" msprop:Generator_TablePropName="subdir">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="경로명" msprop:Generator_UserColumnName="경로명" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="경로명" msprop:Generator_ColumnPropNameInTable="경로명Column" msprop:Generator_ColumnVarNameInTable="column경로명" default="">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:WorkList" />
|
||||
<xs:field xpath="mstns:대상경로" />
|
||||
<xs:field xpath="mstns:대상파일명" />
|
||||
<xs:field xpath="mstns:오류" />
|
||||
</xs:unique>
|
||||
<xs:unique name="subdir_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:subdir" />
|
||||
<xs:field xpath="mstns:경로명" />
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
15
DriveInfo/DataSet/ireaDataSet.xss
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--<autogenerated>
|
||||
This code was generated by a tool to store the dataset designer's layout information.
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:subdir" ZOrder="1" X="535" Y="34" Height="48" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="92" />
|
||||
<Shape ID="DesignTable:FileList" ZOrder="4" X="39" Y="26" Height="277" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="273" />
|
||||
<Shape ID="DesignTable:SrcList" ZOrder="3" X="195" Y="26" Height="258" Width="149" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:WorkList" ZOrder="2" X="358" Y="28" Height="296" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="292" />
|
||||
</Shapes>
|
||||
<Connectors />
|
||||
</DiagramLayout>
|
||||
307
DriveInfo/DriveInfo.vbproj
Normal file
@@ -0,0 +1,307 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{FEDED234-344B-4151-BBC5-67F1F5467C18}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<StartupObject>FileManager.My.MyApplication</StartupObject>
|
||||
<RootNamespace>FileManager</RootNamespace>
|
||||
<AssemblyName>FileManager</AssemblyName>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>D:\Tinsky\Visual Basic For IREA\Runtime\Setup_FileManager_170402_0100\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<SupportUrl>http://tindevil.com</SupportUrl>
|
||||
<ProductName>파일명관리자</ProductName>
|
||||
<PublisherName>SIMP</PublisherName>
|
||||
<AutorunEnabled>true</AutorunEnabled>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>2</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<BootstrapperComponentsLocation>Relative</BootstrapperComponentsLocation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\..\Runtime\FileManager\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Runtime\FileManager\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Folder.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetZone>LocalIntranet</TargetZone>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateManifests>true</GenerateManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>false</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>F2FEEBAFF25D2E024AFE5812C23EFE0EBB084EFC</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestKeyFile>DriveInfo_TemporaryKey.pfx</ManifestKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="C1.Win.4, Version=4.0.20171.248, Culture=neutral, PublicKeyToken=944ae1ea0e47ca04" />
|
||||
<Reference Include="C1.Win.C1Ribbon.4, Version=4.0.20171.248, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
|
||||
<Reference Include="CommonClassv2">
|
||||
<HintPath>..\CommonClassv2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.CalcEngine, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.Excel, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.PDF, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.Win, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.Win.Chart, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457" />
|
||||
<Reference Include="FarPoint.Win.Spread, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL" />
|
||||
<Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Drawing" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.IO" />
|
||||
<Import Include="System.Windows.Forms" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DataSet\ireaDataSet.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>ireaDataSet.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="fFtpPath.Designer.vb">
|
||||
<DependentUpon>fFtpPath.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="fFtpPath.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="모듈\Job.vb" />
|
||||
<Compile Include="모듈\Mod_Backup.vb" />
|
||||
<Compile Include="모듈\Pub.vb" />
|
||||
<Compile Include="모듈\mod_Delete.vb" />
|
||||
<Compile Include="모듈\Mod_Move.vb" />
|
||||
<Compile Include="입력폼\Form_Status.Designer.vb">
|
||||
<DependentUpon>Form_Status.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Form_Status.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_FileInfo.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_FileInfo.Designer.vb">
|
||||
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_DeleteFile.Designer.vb">
|
||||
<DependentUpon>Frm_DeleteFile.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_DeleteFile.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_RenameFile.Designer.vb">
|
||||
<DependentUpon>Frm_RenameFile.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="입력폼\Frm_RenameFile.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="컨트롤\ImpCtl.Designer.vb">
|
||||
<DependentUpon>ImpCtl.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="컨트롤\ImpCtl.vb">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MDiMain.Designer.vb">
|
||||
<DependentUpon>MDiMain.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MDiMain.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="My Project\ApplicationEvents.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="fFtpPath.resx">
|
||||
<DependentUpon>fFtpPath.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="입력폼\Form_Status.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>Form_Status.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="입력폼\Frm_DeleteFile.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>Frm_DeleteFile.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="입력폼\Frm_FileInfo.resx">
|
||||
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="컨트롤\ImpCtl.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ImpCtl.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MDiMain.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>MDiMain.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\licenses.licx" />
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DriveInfo_TemporaryKey.pfx" />
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Flag 2-64.png.ico" />
|
||||
<Content Include="Folder.ico" />
|
||||
<Content Include="irea.mdb">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="ReadMe.htm" />
|
||||
<Content Include="ReadMe.txt" />
|
||||
<None Include="Resources\opts_16.png" />
|
||||
<None Include="Resources\foldr_16.png" />
|
||||
<None Include="app.config" />
|
||||
<None Include="DataSet\ireaDataSet.xsc">
|
||||
<DependentUpon>ireaDataSet.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="DataSet\ireaDataSet.xsd">
|
||||
<Generator>MSDataSetGenerator</Generator>
|
||||
<LastGenOutput>ireaDataSet.Designer.vb</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="DataSet\ireaDataSet.xss">
|
||||
<DependentUpon>ireaDataSet.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="Resources\srch_32.png" />
|
||||
<None Include="Resources\splay_32.png" />
|
||||
<None Include="Resources\Accessibility.png" />
|
||||
<None Include="Resources\go_32.png" />
|
||||
<None Include="Resources\save_24.png" />
|
||||
<None Include="Resources\hd_24.png" />
|
||||
<None Include="Resources\play_321.png" />
|
||||
<None Include="Resources\stop_16.png" />
|
||||
<None Include="Resources\impt_32.png" />
|
||||
<None Include="Resources\play_32.png" />
|
||||
<None Include="Resources\opts_24.png" />
|
||||
<None Include="Resources\apps_16.png" />
|
||||
<None Include="Resources\remov_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="클래스\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0.SP2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0 SP2</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FTP_Client\FTP_Client.csproj">
|
||||
<Project>{9A2A1B46-799E-4D8E-8682-1F82963836A3}</Project>
|
||||
<Name>FTP_Client</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\[NET2]ArinLog\ArinLog.vbproj">
|
||||
<Project>{E9E16A98-8F8D-4848-A27E-4571C184FB1A}</Project>
|
||||
<Name>ArinLog</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\[NET2]ArinSetting\ArinSetting.vbproj">
|
||||
<Project>{631388D0-FADF-4C02-9536-A33E1C40F91D}</Project>
|
||||
<Name>ArinSetting</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
|
||||
</Project>
|
||||
BIN
DriveInfo/Flag 2-64.png.ico
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
DriveInfo/Folder.ico
Normal file
|
After Width: | Height: | Size: 158 KiB |
111
DriveInfo/Form1.Designer.vb
generated
Normal file
@@ -0,0 +1,111 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Form1
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.C1Ribbon1 = New C1.Win.C1Ribbon.C1Ribbon()
|
||||
Me.RibbonApplicationMenu1 = New C1.Win.C1Ribbon.RibbonApplicationMenu()
|
||||
Me.RibbonQat1 = New C1.Win.C1Ribbon.RibbonQat()
|
||||
Me.RibbonConfigToolBar1 = New C1.Win.C1Ribbon.RibbonConfigToolBar()
|
||||
Me.RibbonTopToolBar1 = New C1.Win.C1Ribbon.RibbonTopToolBar()
|
||||
Me.RibbonBottomToolBar1 = New C1.Win.C1Ribbon.RibbonBottomToolBar()
|
||||
Me.RibbonTab1 = New C1.Win.C1Ribbon.RibbonTab()
|
||||
Me.RibbonGroup1 = New C1.Win.C1Ribbon.RibbonGroup()
|
||||
Me.C1StatusBar1 = New C1.Win.C1Ribbon.C1StatusBar()
|
||||
CType(Me.C1Ribbon1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.C1StatusBar1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'C1Ribbon1
|
||||
'
|
||||
Me.C1Ribbon1.ApplicationMenuHolder = Me.RibbonApplicationMenu1
|
||||
Me.C1Ribbon1.BottomToolBarHolder = Me.RibbonBottomToolBar1
|
||||
Me.C1Ribbon1.ConfigToolBarHolder = Me.RibbonConfigToolBar1
|
||||
Me.C1Ribbon1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.C1Ribbon1.Name = "C1Ribbon1"
|
||||
Me.C1Ribbon1.QatHolder = Me.RibbonQat1
|
||||
Me.C1Ribbon1.Size = New System.Drawing.Size(727, 155)
|
||||
Me.C1Ribbon1.Tabs.Add(Me.RibbonTab1)
|
||||
Me.C1Ribbon1.TopToolBarHolder = Me.RibbonTopToolBar1
|
||||
'
|
||||
'RibbonApplicationMenu1
|
||||
'
|
||||
Me.RibbonApplicationMenu1.Name = "RibbonApplicationMenu1"
|
||||
'
|
||||
'RibbonQat1
|
||||
'
|
||||
Me.RibbonQat1.Name = "RibbonQat1"
|
||||
'
|
||||
'RibbonConfigToolBar1
|
||||
'
|
||||
Me.RibbonConfigToolBar1.Name = "RibbonConfigToolBar1"
|
||||
'
|
||||
'RibbonTopToolBar1
|
||||
'
|
||||
Me.RibbonTopToolBar1.Name = "RibbonTopToolBar1"
|
||||
'
|
||||
'RibbonBottomToolBar1
|
||||
'
|
||||
Me.RibbonBottomToolBar1.Name = "RibbonBottomToolBar1"
|
||||
'
|
||||
'RibbonTab1
|
||||
'
|
||||
Me.RibbonTab1.Groups.Add(Me.RibbonGroup1)
|
||||
Me.RibbonTab1.Name = "RibbonTab1"
|
||||
Me.RibbonTab1.Text = "Tab"
|
||||
'
|
||||
'RibbonGroup1
|
||||
'
|
||||
Me.RibbonGroup1.Name = "RibbonGroup1"
|
||||
Me.RibbonGroup1.Text = "Group"
|
||||
'
|
||||
'C1StatusBar1
|
||||
'
|
||||
Me.C1StatusBar1.Location = New System.Drawing.Point(0, 584)
|
||||
Me.C1StatusBar1.Name = "C1StatusBar1"
|
||||
Me.C1StatusBar1.Size = New System.Drawing.Size(727, 22)
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(727, 606)
|
||||
Me.Controls.Add(Me.C1StatusBar1)
|
||||
Me.Controls.Add(Me.C1Ribbon1)
|
||||
Me.Name = "Form1"
|
||||
Me.Text = "Form1"
|
||||
CType(Me.C1Ribbon1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.C1StatusBar1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents C1Ribbon1 As C1.Win.C1Ribbon.C1Ribbon
|
||||
Friend WithEvents RibbonApplicationMenu1 As C1.Win.C1Ribbon.RibbonApplicationMenu
|
||||
Friend WithEvents RibbonBottomToolBar1 As C1.Win.C1Ribbon.RibbonBottomToolBar
|
||||
Friend WithEvents RibbonConfigToolBar1 As C1.Win.C1Ribbon.RibbonConfigToolBar
|
||||
Friend WithEvents RibbonQat1 As C1.Win.C1Ribbon.RibbonQat
|
||||
Friend WithEvents RibbonTab1 As C1.Win.C1Ribbon.RibbonTab
|
||||
Friend WithEvents RibbonGroup1 As C1.Win.C1Ribbon.RibbonGroup
|
||||
Friend WithEvents RibbonTopToolBar1 As C1.Win.C1Ribbon.RibbonTopToolBar
|
||||
Friend WithEvents C1StatusBar1 As C1.Win.C1Ribbon.C1StatusBar
|
||||
End Class
|
||||
120
DriveInfo/Form1.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
3
DriveInfo/Form1.vb
Normal file
@@ -0,0 +1,3 @@
|
||||
Public Class Form1
|
||||
|
||||
End Class
|
||||
29
DriveInfo/Form2.Designer.vb
generated
Normal file
@@ -0,0 +1,29 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Form2
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
components = New System.ComponentModel.Container
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Text = "Form2"
|
||||
End Sub
|
||||
End Class
|
||||
3
DriveInfo/Form2.vb
Normal file
@@ -0,0 +1,3 @@
|
||||
Public Class Form2
|
||||
|
||||
End Class
|
||||
1798
DriveInfo/MDiMain.Designer.vb
generated
Normal file
268
DriveInfo/MDiMain.resx
Normal file
@@ -0,0 +1,268 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>709, 17</value>
|
||||
</metadata>
|
||||
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>802, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>892, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="btAddSubDir.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABSklEQVQ4T2MYvODuAvb/t+Zx/r86h+v/
|
||||
xRm8/6HCxIPrQI1/HjX+//Ow4f/JyQKkG3B+Oi/cgIM9IqQbcHySIFBz3f8/D6r+72gXJ2zApZk8/89O
|
||||
5ft/EqjxSL/Q/33dIkDN5f//3iv6v75B5v+qGrn/SysV/88vVf4/q0gV08BTQH/+eVgP1FQLxJX//9wr
|
||||
AeK8/3/vZv7/eyf5/9/bcf//3YwA4pD/k3I0MQ041CsMdu7f+6VAjQVAjdlAjalAjQn//92KBmoM+//v
|
||||
RtD/f9f9/nel6WIasLNd4v+WZqn/68DOlf+/pELx/99bMUCN4f+n5mn8n5Cl9b87Q/d/e6r+/+ZEQ8Jh
|
||||
MhvoT5Bz/90I+N+ToUNYAzoA+fPfDX8g9vvfmqxPugHd6bpg/4JwfZwR6Qa0JBn8b4g3/F8Ta/y/MtqE
|
||||
dAPoBBgYACQj2J51/IhpAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="btDeleteSubDir.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABb0lEQVQ4T7WQTSjDYRzHd1XeSu3iglo5
|
||||
IJO8hGQypLHIhMjMJAcOi4R2cXAg5UIOuEgOJCXlROI0b/Pamlp/LVLaBf+4PB9jqLW/seJ7eep5vt/P
|
||||
7/v8VH8iXCfQbQTHDh9XkYmVeURnFcKsh631sBC8HliaCfawtgC9JkS7HtFRAXMTipC3hsJcBiM9oe+c
|
||||
OgKQumxEYwHYmoJMYsiKMOXCpD1sQxWL04jK1HcQw1Zwn8FYfwDqPz9s4YXHBc3FgS8ZsxD1edDX8rvw
|
||||
p9jf9VfOQxjSoUYbYfhGgsZCyElA1sbzoI2F2uxf1r+5BlM+FCXisxjg4uh9uXdpfsjy7A8LvL+DVh2P
|
||||
JUm4S9Px7W1/BRi14dTEIJ8cKEN4eYZBC+iSOU5T49tYDTHelmcgtVUje69DIexuIueqcaZEIXU1gPyk
|
||||
OGlHE4fsdCgApkaQUqNx6zNBulKu6Zds74bzQwXApRPGB+Bw79vwP0ilegWKIwMchCbSyQAAAABJRU5E
|
||||
rkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="src_view1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>164, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>273, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DataSet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>382, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>484, 17</value>
|
||||
</metadata>
|
||||
<data name="bt_run.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAABK1JREFUWEftlXtMlWUcx/lL5eK1GDrD7Ry5HA9wCBA4kbmpRTdjast5QQVLmMBM
|
||||
mogcLhLJ4SIXSZhMzJyxXMwutCxQJCUs04KsPyrnqjWRcetwk8M5x/f99n1ezwxTBnM7x63127573/OO
|
||||
cz6f3+95nheX/+tB68qXKvxwVoW2M2rYHzm32ptU6L+WBNPVRHz7+ULnS3zXqMbwDQOTicE/duKrj32d
|
||||
K3GRXZv78mHp3w9z7z5F4mydn/MkLtT7YLS/GLaRKthuHrRLvI6G9/ydI9HykS8sg6WQLIch2Q5ToowS
|
||||
2ZTYjvoareMlmjlu63A54dWALCTepkQ+JXZRIg51lQGOlTj9vj9s5jLItyoBVFFCyBhhG86EuScZg7+v
|
||||
Q21J0OQl2ptVaG9S4/vTalxuWIiLp3zwzWc+aK33RQt3+LmTfmj+wA9nTvijsVaDL45rIFlLIUvlFChl
|
||||
igApj88MnMQOTmILJV7C0fzgyUmIF4o4VuY+IywDpf/KfqaQa17AsRdw4xUSVMTuBbSA8H2cwF7GwM9p
|
||||
nEQKJxHHSayhxAocygmZWOJSg1qBi10tWY/Yw7W1HmIqudkq+MNi5CUKWJaMBL7F5DKZzG5mJ5NCiW38
|
||||
ziZKrKFENCX0qNgzgYQYt+hWgIFjzFGmhuEmg1jnA0wJAYW8julYAacyBCOBied9LCXW8rdiKLECI116
|
||||
DFwLRElq2PgSrZ8IgWKlY8hCQoC5ucaClY4JBsEYA5YJlu1geS2zmlnJSUVDGl0KiykMQ38uQt9P3jAm
|
||||
h99f4vxJnusBIwUq7GBeZfvmEh3D3rECFqNO5r0AxzEbmX/AkJ9lllFgCQXCKRBIATUF5uJG6yy8mRBx
|
||||
r0QTd7hlIJcCAijAYtT2jpVRp/GzHSwnMqLjseAXOfZoXpczTwG3IrlvQrgEWi6BikswD91ts9Fx3gM5
|
||||
WyPvFWis9VdeIraRLH4xh8lgdlEoldcUJoH3WyHbNjPr2d0rBK66DZYFeNltsBxJeCj/PhC2IT+Yuxdg
|
||||
8Dcv9F6Zjc4L7si+H1zUqWMaDHe8ypOwnf9gkphtTDwTy6xjXuaEVsE6tJKSLxDwHCWepgTBEsESwVIY
|
||||
4TqKatg5T1X3Y4R7Ej4TnV+7ITt+HLioT49oYfo1hkdmNddLJIZ5nnmGWc4sxfD1JbjZGYXRvicJiKJE
|
||||
FCXsYElHuJbPfNj5AsLnEj6H8OmEuyIrTj8+XNSH1Vp0XYrgOkWipz2CWcw8zuiYAEaD3h81MP28iO96
|
||||
LUZ7dXzjBUO2BhGuJdyXcBXh8wn3JHwm4e6ET0Xm5gngouoOBuDEgUDUlgXheHEQ3i3U4Z18HWryglG9
|
||||
NxhVWSGoNISgIj0U5WmhKHkjDNZBAfWlgIpXb8K9CH+E8OmEuxI+BYZNk4A/SBXtWMw94Q3JPJ/weYR7
|
||||
8q03i3APwqcp8AxHwUUZk8Ix+pcX98KjhM9h5zMId7sD3xP7hOPgovISw5WOLaYZhHvcDd/oYLio3Nci
|
||||
eCrceXTd74Knb3ACXJQ40/1X3WD6xfUOfPd6J8FFGbbo0dM2DV2Xp/IN52S4qAxuso6WKbh+7iHARaVv
|
||||
0CvghwL/D5WLy9+IJOaqgQ6mlQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="btOpenFile.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAAAi5JREFUOE/FkutL03EchX//QBIZkQRFlogFw8CQ6kWIEaUlFKWGkinlpSATCnGm
|
||||
bWreNuelRjqsTbe2tVnNNEULIdEkQksdJaZmQVEppoZKXvb0cxui3d564Lz5cp7D4cNXWH3VGIojRPO7
|
||||
G8x5Re7I/7UY7u/RMTNudfrnmJG5ES2WqiJshuwsd+zfslarmB4zrYAXvpQzZ0/BdKcAfUUu2ptZaEoy
|
||||
uaWUciM/FTfqklmnYPqbbgl2iDD9UrAn/NV/FNytzOfHZ80S3FSjcLrRUkidMZ+H+lws2myMGjlV6mvc
|
||||
Lr1KhUqKWpHmKtNrcpn8UOacPdQmw2ZSsTAkh+GclX4vvg2mQ99leHOB7nvhJMeGVQtadTYTAwXwUUmt
|
||||
uYiOZqUrtHz66xjoPMF8eygzT4J4Vy0h8XTwxKWzR3cKlaUyvr+VM9yegc2oxDEog95EF9gdJ4KRzHeE
|
||||
MdNykMmGfYzW7EKe5ENksGeJ8wblqgxGe9K4b1DQ1Sou6UsRC85BVzSOF8eYfXaYqab9jNkC+Gr2o/P6
|
||||
WqJCvQnwXePrLFAXSultyeSBoRAGMuGVOPflSWbbjjD1NIjxukBGLBI+6bZjV3oiS9iG/w6veie8qLK8
|
||||
VKxVBdgfnee5NYlWUzwt+jiatTE0VkbzuPwU9cscFbLVEei/JcSNC0JxzhWKZfHkpZ0h/WIEyXFhxIYf
|
||||
4PihPQTvlbBb4oOf9yY2e61nwzoPNnp6rPwHqyxB+AUZYsK/1sMKUAAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="btMakeNewList.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAAAaVJREFUOE+VkqFyIzEQRPcT/AfnL4gNE2YW1xELug5kDcMi6DoSQUNBsxu47ATN
|
||||
ImiWgYGCgYJhnRlJPmcdk+uqLu969bpHq+0uZSmjf36dttv/U0oZdp9gthGRE0Jk0BCLvfjP31fflp6l
|
||||
jQpZn7DZcfm1+4z5OiC9Z5ykIebRfQ9RmKIsELsgHgBLgHGphjCXAJ0gHhmLtR2HaKM/VHDj1Rlmp9tI
|
||||
WNhYQkoAhQKf3PCu07G9rKmgWJrNVpoKTGBpzccawjKNTjG7713DJcAxpksvJkwNlcbFo8ByzW/nd5A/
|
||||
xDkjhoBgN8Uvv/t5i6nS9BKisDbHgEweSb134EAFTN6CtzWkoVXhUKf52qzS9vQm4wcHXcM7W2B/Ox8H
|
||||
6FEVYPDj5kMQ2CInuT9auJ0r8PPdzDS06hTwVSkxwrApMEcZe28wmUzQ/5qN96/Ssy5Qa07SHMh8g1er
|
||||
FTVkrH8BKcmRxaswDYSb5QM3ZCwvn6M+1HMmIsSDTMLyws7NTp/Plxdv/5o0QBV8hZ/6K3tWadql5e+p
|
||||
tRZmbfQaq58/rsNd130CEfv2E8lIfnsAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="RibbonButton1.SmallImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAAAi5JREFUOE/FkutL03EchX//QBIZkQRFlogFw8CQ6kWIEaUlFKWGkinlpSATCnGm
|
||||
bWreNuelRjqsTbe2tVnNNEULIdEkQksdJaZmQVEppoZKXvb0cxui3d564Lz5cp7D4cNXWH3VGIojRPO7
|
||||
G8x5Re7I/7UY7u/RMTNudfrnmJG5ES2WqiJshuwsd+zfslarmB4zrYAXvpQzZ0/BdKcAfUUu2ptZaEoy
|
||||
uaWUciM/FTfqklmnYPqbbgl2iDD9UrAn/NV/FNytzOfHZ80S3FSjcLrRUkidMZ+H+lws2myMGjlV6mvc
|
||||
Lr1KhUqKWpHmKtNrcpn8UOacPdQmw2ZSsTAkh+GclX4vvg2mQ99leHOB7nvhJMeGVQtadTYTAwXwUUmt
|
||||
uYiOZqUrtHz66xjoPMF8eygzT4J4Vy0h8XTwxKWzR3cKlaUyvr+VM9yegc2oxDEog95EF9gdJ4KRzHeE
|
||||
MdNykMmGfYzW7EKe5ENksGeJ8wblqgxGe9K4b1DQ1Sou6UsRC85BVzSOF8eYfXaYqab9jNkC+Gr2o/P6
|
||||
WqJCvQnwXePrLFAXSultyeSBoRAGMuGVOPflSWbbjjD1NIjxukBGLBI+6bZjV3oiS9iG/w6veie8qLK8
|
||||
VKxVBdgfnee5NYlWUzwt+jiatTE0VkbzuPwU9cscFbLVEei/JcSNC0JxzhWKZfHkpZ0h/WIEyXFhxIYf
|
||||
4PihPQTvlbBb4oOf9yY2e61nwzoPNnp6rPwHqyxB+AUZYsK/1sMKUAAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="RibbonButton10.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wwAADsMBx2+oZAAABLhJREFUWEftV1lTk1cYpu1N/0Evet2LriLu4A4uIKJctDdFRJZilaVsgrJUUgSU
|
||||
RZY0CGEnJAawuOBUZ+yUjp2ptVbqRB1aEQMEKZCEgKy1+PR9Dwl+QErSmdzVZ+aZc07O+z7n+Q7fd86L
|
||||
G4DX3CTgMfF163Ae0t/szUsh1eCWx2LCisXjV3iFJcgI9EP6fl/BtH27kRqwS/DE3p047r8DKXt8kOzn
|
||||
jWPEJN/tSNy9DQm7tiJ+5xbE7diML3w2IdZ7I2K2eSJ66wZEbVmPo5vXwSq/PHjxywU5ePHgLl503HIN
|
||||
SUsjS8PnG9c4NsEGZnV3MHy+Cia1EubzlbA01eDZhTpMtKowdVmD6TYtnn/bTGzB39cuiJY5c7UJ01c0
|
||||
mLjYSPH1Io/zTdpqoXnYGQO87c9v38RQXRmGG87BqKqAWV2JUS2ZaCET36gweVGNmStawb/amub7U5c0
|
||||
mGxtxHhLPUZ5cU2VyGcd1oz0Wu2cgZmfvsdAdQkGa+RkRCEEzI0VsNCujPFukJFJ2g3mFD2trT9OT/2s
|
||||
uRajFGem3TNSHuezDmtGeq5ybIBfuukfb6C/ohADyrP4s6qYBEphrFfArDoHi7qCFqjEeHON4ERL7Xx/
|
||||
TFuFUY0SI43lIn6oVi7yWYc1P9vg4ZyByR+uoU9xBoayPPSXFwiBQRIykhFT3dcYaSjDKBkZY9KC3PLY
|
||||
QgbNtLCRFh6kHeQ8zmcd1oxwxgB/buPftUFfnIWe0mz0yXNgUJzG0/J8DCoLMVRVBGN1Mcx1coww68kQ
|
||||
tTw21ZRgmOY4boDi+ymP81mHNcPXr3TOwNj1VjzJz8CTwpPoOZuJ3iIZDKWn6A55CaOyACZmZaFoeSxF
|
||||
P8X3FX8l8lmHNcPXuTs2wIeN5WozunKO43HuCXSfToM+Lx29BV/CQEakGFLkzlMKjuN4fV6GyGcd1gxz
|
||||
1oDpkhqdsgT8LkvEH1lJ6MpORjcZ0p9JRW9+unWZOTwtyrT25sDzHNedSw9AeZzPOqwZunbFvAEKfcPa
|
||||
XQg+ao30mT1Mi0Znegw6M2Lx6GQcumTx6M5KhD77GHpykudWs2J2dla0vbkpYp7jHtMDPMqME/msw5qh
|
||||
az5yvAMpZKCn5BR+DvLF7SA//HJgD+4c9EdHyF78digA90L3QRcWiPvhgWJRG3isI94L3S/iOkIC8Cvl
|
||||
cT7rsOYhpwzQRaOL+hTtK95alranlsJenI2sGbL6Q8cG+JbTxQSj3ePtf6UUevrWpbAXz2TNkFUfODbA
|
||||
V6wuMQLtnu/YpRT6arn4jVspFucwWfOgUwboftelRqPdx30JbeDt1zdULJjjsRTSOSZrBnu8v8AAhS0t
|
||||
TpOouNDJktAe4OVSsqbUgN3FGVzdPKCD4+Yn3i4lax5Y+Z7jP0EilVaddHzeCvF3KVlTaoB3wO4uJFBd
|
||||
16XIwd0jH7uUrBnk/q7jdyCeikqDVomHqRG4nxTsErIWay42YBdc1apSEzDQWguDqtQlZK3y2EjnDDBE
|
||||
Sb3dC9FUVkdRWX2Uyuojm9aKqvYw1XVcWnF1E0H3O1+xYXTJ8EXDRy2fdvy98xvP5L87L+z04v8b0Au4
|
||||
7H/YC0DBb1q7Av8pmbA4/uXb7+b2D2VadFJ/YJtFAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="NotifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>593, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
1418
DriveInfo/MDiMain.vb
Normal file
38
DriveInfo/My Project/Application.Designer.vb
generated
Normal file
@@ -0,0 +1,38 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
'참고: 자동으로 생성되므로 직접 이 파일을 수정하지 마십시오. 변경할 사항이 있거나
|
||||
' 파일에서 빌드 오류가 발생하는 경우 프로젝트 디자이너로
|
||||
' 이동([프로젝트 속성]으로 이동하거나 솔루션 탐색기에서 My Project 노드를
|
||||
' 두 번 클릭)한 다음 [응용 프로그램] 탭에서 변경하십시오.
|
||||
'
|
||||
Partial Friend Class MyApplication
|
||||
|
||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||
Public Sub New()
|
||||
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||
Me.IsSingleInstance = false
|
||||
Me.EnableVisualStyles = true
|
||||
Me.SaveMySettingsOnExit = false
|
||||
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||
End Sub
|
||||
|
||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||
Protected Overrides Sub OnCreateMainForm()
|
||||
Me.MainForm = Global.FileManager.MDiMain
|
||||
End Sub
|
||||
End Class
|
||||
End Namespace
|
||||
10
DriveInfo/My Project/Application.myapp
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<MySubMain>true</MySubMain>
|
||||
<MainForm>MDiMain</MainForm>
|
||||
<SingleInstance>false</SingleInstance>
|
||||
<ShutdownMode>0</ShutdownMode>
|
||||
<EnableVisualStyles>true</EnableVisualStyles>
|
||||
<AuthenticationMode>0</AuthenticationMode>
|
||||
<SaveMySettingsOnExit>false</SaveMySettingsOnExit>
|
||||
</MyApplicationData>
|
||||
15
DriveInfo/My Project/ApplicationEvents.vb
Normal file
@@ -0,0 +1,15 @@
|
||||
Namespace My
|
||||
|
||||
' MyApplication에 대해 다음 이벤트를 사용할 수 있습니다.
|
||||
'
|
||||
' Startup: 응용 프로그램이 시작되고 시작 폼이 만들어지기 전에 발생합니다.
|
||||
' Shutdown: 모든 응용 프로그램 폼이 닫힌 후에 발생합니다. 이 이벤트는 응용 프로그램이 비정상적으로 종료되는 경우에는 발생하지 않습니다.
|
||||
' UnhandledException: 응용 프로그램에서 처리되지 않은 예외가 발생하는 경우 이 이벤트가 발생합니다.
|
||||
' StartupNextInstance: 단일 인스턴스 응용 프로그램을 시작할 때 해당 응용 프로그램이 이미 활성 상태인 경우 발생합니다.
|
||||
' NetworkAvailabilityChanged: 네트워크가 연결되거나 연결이 끊어질 때 발생합니다.
|
||||
Partial Friend Class MyApplication
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
|
||||
37
DriveInfo/My Project/AssemblyInfo.vb
Normal file
@@ -0,0 +1,37 @@
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
' General Information about an assembly is controlled through the following
|
||||
' set of attributes. Change these attribute values to modify the information
|
||||
' associated with an assembly.
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
<Assembly: AssemblyTitle("FileManager")>
|
||||
<Assembly: AssemblyDescription("파일을 일괄로 삭제/이름변경/이동등을 할 수 있습니다.")>
|
||||
<Assembly: AssemblyCompany("SIMP")>
|
||||
<Assembly: AssemblyProduct("번호찰 사진파일 관리프로그램")>
|
||||
<Assembly: AssemblyCopyright("Copyright 2008 Arin")>
|
||||
<Assembly: AssemblyTrademark("ArinWare")>
|
||||
|
||||
<Assembly: CLSCompliant(True)>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
'The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
<Assembly: Guid("a97662dd-673f-4bba-b12d-f349de90ea74")>
|
||||
|
||||
' Version information for an assembly consists of the following four values:
|
||||
'
|
||||
' Major Version
|
||||
' Minor Version
|
||||
' Build Number
|
||||
' Revision
|
||||
'
|
||||
' You can specify all the values or you can default the Build and Revision Numbers
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.2017.0410.2200")>
|
||||
<Assembly: AssemblyFileVersion("1.2017.0410.2200")>
|
||||
213
DriveInfo/My Project/Resources.Designer.vb
generated
Normal file
@@ -0,0 +1,213 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||
'클래스에서 자동으로 생성되었습니다.
|
||||
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||
'''<summary>
|
||||
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("FileManager.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture
|
||||
''' 속성을 재정의합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property Accessibility() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("Accessibility", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property apps_16() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("apps_16", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property foldr_16() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("foldr_16", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property go_32() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("go_32", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property hd_24() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("hd_24", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property impt_32() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("impt_32", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property opts_16() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("opts_16", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property opts_24() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("opts_24", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property play_32() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("play_32", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property play_321() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("play_321", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property remov_16() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("remov_16", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property save_24() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("save_24", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property splay_32() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("splay_32", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property srch_32() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("srch_32", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property stop_16() As System.Drawing.Bitmap
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("stop_16", resourceCulture)
|
||||
Return CType(obj,System.Drawing.Bitmap)
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
166
DriveInfo/My Project/Resources.resx
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="go_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\go_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="impt_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\impt_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="play_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\play_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="remov_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\remov_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="save_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\save_24.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="hd_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\hd_24.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="opts_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\opts_24.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="play_321" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\play_321.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="srch_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\srch_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="foldr_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\foldr_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="apps_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\apps_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="Accessibility" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Accessibility.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="stop_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\stop_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="splay_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\splay_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="opts_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\opts_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
71
DriveInfo/My Project/Settings.Designer.vb
generated
Normal file
@@ -0,0 +1,71 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class Settings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As Settings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()),Settings)
|
||||
|
||||
#Region "My.Settings 자동 저장 기능"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As Settings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.FileManager.Settings
|
||||
Get
|
||||
Return Global.FileManager.Settings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
5
DriveInfo/My Project/Settings.settings
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles />
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
70
DriveInfo/My Project/app.manifest
Normal file
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC 매니페스트 옵션
|
||||
Windows 사용자 계정 컨트롤 수준을 변경하려면
|
||||
requestedExecutionLevel 노드를 다음 중 하나로 바꿉니다.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
requestedExecutionLevel 요소를 지정하면 파일 및 레지스트리 가상화를 사용하지 않습니다.
|
||||
이전 버전과의 호환성을 위해 응용 프로그램에 가상화가 필요한 경우
|
||||
이 요소를 제거합니다.
|
||||
-->
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
<applicationRequestMinimum>
|
||||
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
|
||||
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||
</applicationRequestMinimum>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- 이 응용 프로그램이 테스트되고 함께 작동하도록 설계된 Windows 버전
|
||||
목록입니다. 적절한 요소의 주석 처리를 제거하면 Windows에서
|
||||
호환 가능성이 가장 높은 환경을 자동으로 선택합니다. -->
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
<!-- Windows 10 -->
|
||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||
</application>
|
||||
</compatibility>
|
||||
<!-- 응용 프로그램에서 DPI를 인식하며 높은 DPI에서는 Windows가 자동으로 크기를 조정하지
|
||||
않습니다. WPF(Windows Presentation Foundation) 응용 프로그램은 자동으로 DPI를 인식하며
|
||||
옵트인할 필요가 없습니다. 이 설정으로 옵트인하며 .NET Framework 4.6을 대상으로 하는
|
||||
Windows Forms 응용 프로그램은 app.config에서 'EnableWindowsFormsHighDpiAutoResizing' 설정도 'true'로 지정합니다. -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
<!-- Windows 공용 컨트롤 및 대화 상자의 테마 사용(Windows XP 이상) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
</assembly>
|
||||
3
DriveInfo/My Project/licenses.licx
Normal file
@@ -0,0 +1,3 @@
|
||||
C1.Win.C1Ribbon.C1StatusBar, C1.Win.C1Ribbon.4, Version=4.0.20171.248, Culture=neutral, PublicKeyToken=79882d576c6336da
|
||||
FarPoint.Win.Spread.FpSpread, FarPoint.Win.Spread, Version=5.0.3518.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457
|
||||
C1.Win.C1Ribbon.C1Ribbon, C1.Win.C1Ribbon.4, Version=4.0.20171.248, Culture=neutral, PublicKeyToken=79882d576c6336da
|
||||
3
DriveInfo/My Project/licenses.licx.bak
Normal file
@@ -0,0 +1,3 @@
|
||||
C1.Win.C1Ribbon.C1Ribbon, C1.Win.C1Ribbon.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=79882d576c6336da
|
||||
FarPoint.Win.Spread.FpSpread, FarPoint.Win.Spread, Version=5.0.2005.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457
|
||||
C1.Win.C1Ribbon.C1StatusBar, C1.Win.C1Ribbon.2, Version=2.0.20153.110, Culture=neutral, PublicKeyToken=79882d576c6336da
|
||||
BIN
DriveInfo/Resources/Accessibility.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
DriveInfo/Resources/apps_16.png
Normal file
|
After Width: | Height: | Size: 988 B |
BIN
DriveInfo/Resources/foldr_16.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
DriveInfo/Resources/go_32.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
DriveInfo/Resources/hd_24.png
Normal file
|
After Width: | Height: | Size: 849 B |
BIN
DriveInfo/Resources/impt_32.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
DriveInfo/Resources/opts_16.png
Normal file
|
After Width: | Height: | Size: 800 B |
BIN
DriveInfo/Resources/opts_24.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
DriveInfo/Resources/play_32.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
DriveInfo/Resources/play_321.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
DriveInfo/Resources/remov_16.png
Normal file
|
After Width: | Height: | Size: 892 B |
BIN
DriveInfo/Resources/save_24.png
Normal file
|
After Width: | Height: | Size: 874 B |
BIN
DriveInfo/Resources/splay_32.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
DriveInfo/Resources/srch_32.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
DriveInfo/Resources/stop_16.png
Normal file
|
After Width: | Height: | Size: 779 B |
26
DriveInfo/app.config
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
</configSections>
|
||||
<connectionStrings/>
|
||||
<system.diagnostics>
|
||||
<sources>
|
||||
<!-- 이 섹션은 My.Application.Log의 로깅 구성을 정의합니다. -->
|
||||
<source name="DefaultSource" switchName="DefaultSwitch">
|
||||
<listeners>
|
||||
<add name="FileLog"/>
|
||||
<!-- 아래 섹션의 주석 처리를 제거하여 응용 프로그램 이벤트 로그에 씁니다. -->
|
||||
<!--<add name="EventLog"/>-->
|
||||
</listeners>
|
||||
</source>
|
||||
</sources>
|
||||
<switches>
|
||||
<add name="DefaultSwitch" value="Information"/>
|
||||
</switches>
|
||||
<sharedListeners>
|
||||
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
|
||||
<!-- 아래 섹션의 주석 처리를 제거하여 APPLICATION_NAME을 응용 프로그램 이름으로 바꾼 후 응용 프로그램 이벤트 로그에 씁니다. -->
|
||||
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
|
||||
</sharedListeners>
|
||||
</system.diagnostics>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
||||
301
DriveInfo/fFtpPath.Designer.vb
generated
Normal file
@@ -0,0 +1,301 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class fFtpPath
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.lv_ftpde = New System.Windows.Forms.ListView()
|
||||
Me.columnHeader18 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
|
||||
Me.columnHeader21 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
|
||||
Me.columnHeader19 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
|
||||
Me.columnHeader20 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
|
||||
Me.Panel2 = New System.Windows.Forms.Panel()
|
||||
Me.Panel1 = New System.Windows.Forms.Panel()
|
||||
Me.chk_ftputf8 = New System.Windows.Forms.CheckBox()
|
||||
Me.chk_ftpPassive = New System.Windows.Forms.CheckBox()
|
||||
Me.tb_ftpserver = New System.Windows.Forms.TextBox()
|
||||
Me.tb_ftpport = New System.Windows.Forms.TextBox()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.tb_ftppass = New System.Windows.Forms.TextBox()
|
||||
Me.Label3 = New System.Windows.Forms.Label()
|
||||
Me.tb_ftpid = New System.Windows.Forms.TextBox()
|
||||
Me.Label4 = New System.Windows.Forms.Label()
|
||||
Me.Label6 = New System.Windows.Forms.Label()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.btFtpSearch = New System.Windows.Forms.Button()
|
||||
Me.tb_ftppath = New System.Windows.Forms.TextBox()
|
||||
Me.Label5 = New System.Windows.Forms.Label()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Panel2.SuspendLayout()
|
||||
Me.Panel1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'lv_ftpde
|
||||
'
|
||||
Me.lv_ftpde.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.columnHeader18, Me.columnHeader21, Me.columnHeader19, Me.columnHeader20})
|
||||
Me.lv_ftpde.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.lv_ftpde.FullRowSelect = True
|
||||
Me.lv_ftpde.GridLines = True
|
||||
Me.lv_ftpde.Location = New System.Drawing.Point(0, 106)
|
||||
Me.lv_ftpde.Name = "lv_ftpde"
|
||||
Me.lv_ftpde.Size = New System.Drawing.Size(542, 410)
|
||||
Me.lv_ftpde.TabIndex = 17
|
||||
Me.lv_ftpde.UseCompatibleStateImageBehavior = False
|
||||
Me.lv_ftpde.View = System.Windows.Forms.View.Details
|
||||
'
|
||||
'columnHeader18
|
||||
'
|
||||
Me.columnHeader18.Text = "FileName"
|
||||
Me.columnHeader18.Width = 207
|
||||
'
|
||||
'columnHeader21
|
||||
'
|
||||
Me.columnHeader21.Text = "Ext"
|
||||
Me.columnHeader21.Width = 69
|
||||
'
|
||||
'columnHeader19
|
||||
'
|
||||
Me.columnHeader19.Text = "Size"
|
||||
Me.columnHeader19.Width = 132
|
||||
'
|
||||
'columnHeader20
|
||||
'
|
||||
Me.columnHeader20.Text = "Time"
|
||||
Me.columnHeader20.Width = 127
|
||||
'
|
||||
'Panel2
|
||||
'
|
||||
Me.Panel2.Controls.Add(Me.Panel1)
|
||||
Me.Panel2.Controls.Add(Me.Button2)
|
||||
Me.Panel2.Controls.Add(Me.btFtpSearch)
|
||||
Me.Panel2.Controls.Add(Me.tb_ftppath)
|
||||
Me.Panel2.Controls.Add(Me.Label5)
|
||||
Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.Panel2.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel2.Name = "Panel2"
|
||||
Me.Panel2.Size = New System.Drawing.Size(542, 106)
|
||||
Me.Panel2.TabIndex = 16
|
||||
'
|
||||
'Panel1
|
||||
'
|
||||
Me.Panel1.BackColor = System.Drawing.Color.Gainsboro
|
||||
Me.Panel1.Controls.Add(Me.chk_ftputf8)
|
||||
Me.Panel1.Controls.Add(Me.chk_ftpPassive)
|
||||
Me.Panel1.Controls.Add(Me.tb_ftpserver)
|
||||
Me.Panel1.Controls.Add(Me.tb_ftpport)
|
||||
Me.Panel1.Controls.Add(Me.Label2)
|
||||
Me.Panel1.Controls.Add(Me.tb_ftppass)
|
||||
Me.Panel1.Controls.Add(Me.Label3)
|
||||
Me.Panel1.Controls.Add(Me.tb_ftpid)
|
||||
Me.Panel1.Controls.Add(Me.Label4)
|
||||
Me.Panel1.Controls.Add(Me.Label6)
|
||||
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.Panel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel1.Name = "Panel1"
|
||||
Me.Panel1.Size = New System.Drawing.Size(542, 61)
|
||||
Me.Panel1.TabIndex = 8
|
||||
'
|
||||
'chk_ftputf8
|
||||
'
|
||||
Me.chk_ftputf8.AutoSize = True
|
||||
Me.chk_ftputf8.Location = New System.Drawing.Point(12, 34)
|
||||
Me.chk_ftputf8.Name = "chk_ftputf8"
|
||||
Me.chk_ftputf8.Size = New System.Drawing.Size(59, 16)
|
||||
Me.chk_ftputf8.TabIndex = 12
|
||||
Me.chk_ftputf8.Text = "UTF-8"
|
||||
Me.chk_ftputf8.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chk_ftpPassive
|
||||
'
|
||||
Me.chk_ftpPassive.AutoSize = True
|
||||
Me.chk_ftpPassive.Location = New System.Drawing.Point(12, 11)
|
||||
Me.chk_ftpPassive.Name = "chk_ftpPassive"
|
||||
Me.chk_ftpPassive.Size = New System.Drawing.Size(69, 16)
|
||||
Me.chk_ftpPassive.TabIndex = 11
|
||||
Me.chk_ftpPassive.Text = "Passive"
|
||||
Me.chk_ftpPassive.UseVisualStyleBackColor = True
|
||||
'
|
||||
'tb_ftpserver
|
||||
'
|
||||
Me.tb_ftpserver.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.tb_ftpserver.Location = New System.Drawing.Point(149, 9)
|
||||
Me.tb_ftpserver.Name = "tb_ftpserver"
|
||||
Me.tb_ftpserver.Size = New System.Drawing.Size(201, 21)
|
||||
Me.tb_ftpserver.TabIndex = 4
|
||||
Me.tb_ftpserver.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'tb_ftpport
|
||||
'
|
||||
Me.tb_ftpport.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.tb_ftpport.Location = New System.Drawing.Point(394, 32)
|
||||
Me.tb_ftpport.Name = "tb_ftpport"
|
||||
Me.tb_ftpport.Size = New System.Drawing.Size(139, 21)
|
||||
Me.tb_ftpport.TabIndex = 10
|
||||
Me.tb_ftpport.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.AutoSize = True
|
||||
Me.Label2.Location = New System.Drawing.Point(87, 13)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(56, 12)
|
||||
Me.Label2.TabIndex = 3
|
||||
Me.Label2.Text = "Server IP"
|
||||
'
|
||||
'tb_ftppass
|
||||
'
|
||||
Me.tb_ftppass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.tb_ftppass.Location = New System.Drawing.Point(149, 32)
|
||||
Me.tb_ftppass.Name = "tb_ftppass"
|
||||
Me.tb_ftppass.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
|
||||
Me.tb_ftppass.Size = New System.Drawing.Size(201, 21)
|
||||
Me.tb_ftppass.TabIndex = 8
|
||||
Me.tb_ftppass.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'Label3
|
||||
'
|
||||
Me.Label3.AutoSize = True
|
||||
Me.Label3.Location = New System.Drawing.Point(374, 13)
|
||||
Me.Label3.Name = "Label3"
|
||||
Me.Label3.Size = New System.Drawing.Size(16, 12)
|
||||
Me.Label3.TabIndex = 5
|
||||
Me.Label3.Text = "ID"
|
||||
'
|
||||
'tb_ftpid
|
||||
'
|
||||
Me.tb_ftpid.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.tb_ftpid.Location = New System.Drawing.Point(394, 9)
|
||||
Me.tb_ftpid.Name = "tb_ftpid"
|
||||
Me.tb_ftpid.Size = New System.Drawing.Size(139, 21)
|
||||
Me.tb_ftpid.TabIndex = 6
|
||||
Me.tb_ftpid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'Label4
|
||||
'
|
||||
Me.Label4.AutoSize = True
|
||||
Me.Label4.Location = New System.Drawing.Point(81, 36)
|
||||
Me.Label4.Name = "Label4"
|
||||
Me.Label4.Size = New System.Drawing.Size(62, 12)
|
||||
Me.Label4.TabIndex = 7
|
||||
Me.Label4.Text = "Password"
|
||||
'
|
||||
'Label6
|
||||
'
|
||||
Me.Label6.AutoSize = True
|
||||
Me.Label6.Location = New System.Drawing.Point(363, 36)
|
||||
Me.Label6.Name = "Label6"
|
||||
Me.Label6.Size = New System.Drawing.Size(27, 12)
|
||||
Me.Label6.TabIndex = 9
|
||||
Me.Label6.Text = "Port"
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.Button2.Location = New System.Drawing.Point(456, 68)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(74, 29)
|
||||
Me.Button2.TabIndex = 7
|
||||
Me.Button2.Text = "선택"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btFtpSearch
|
||||
'
|
||||
Me.btFtpSearch.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.btFtpSearch.Location = New System.Drawing.Point(391, 68)
|
||||
Me.btFtpSearch.Name = "btFtpSearch"
|
||||
Me.btFtpSearch.Size = New System.Drawing.Size(61, 29)
|
||||
Me.btFtpSearch.TabIndex = 5
|
||||
Me.btFtpSearch.Text = "조회"
|
||||
Me.btFtpSearch.UseVisualStyleBackColor = True
|
||||
'
|
||||
'tb_ftppath
|
||||
'
|
||||
Me.tb_ftppath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.tb_ftppath.Font = New System.Drawing.Font("맑은 고딕", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.tb_ftppath.Location = New System.Drawing.Point(79, 68)
|
||||
Me.tb_ftppath.Name = "tb_ftppath"
|
||||
Me.tb_ftppath.Size = New System.Drawing.Size(304, 29)
|
||||
Me.tb_ftppath.TabIndex = 4
|
||||
Me.tb_ftppath.Text = "/"
|
||||
Me.tb_ftppath.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'Label5
|
||||
'
|
||||
Me.Label5.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.Label5.AutoSize = True
|
||||
Me.Label5.Location = New System.Drawing.Point(14, 76)
|
||||
Me.Label5.Name = "Label5"
|
||||
Me.Label5.Size = New System.Drawing.Size(56, 12)
|
||||
Me.Label5.TabIndex = 3
|
||||
Me.Label5.Text = "FTP 경로"
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.Dock = System.Windows.Forms.DockStyle.Bottom
|
||||
Me.Label1.Location = New System.Drawing.Point(0, 516)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(542, 46)
|
||||
Me.Label1.TabIndex = 18
|
||||
Me.Label1.Text = "원본으로 사용할 폴더를 선택하세요." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "폴더를 더블클릭할 경우 서브폴더로 이동됩니다." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "폴더를 선택했다면 우측 상단의 ""선택""을 클릭하세요"
|
||||
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'fFtpPath
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(542, 562)
|
||||
Me.Controls.Add(Me.lv_ftpde)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.Panel2)
|
||||
Me.Name = "fFtpPath"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "(원본) FTP 경로 선택"
|
||||
Me.Panel2.ResumeLayout(False)
|
||||
Me.Panel2.PerformLayout()
|
||||
Me.Panel1.ResumeLayout(False)
|
||||
Me.Panel1.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Private WithEvents lv_ftpde As System.Windows.Forms.ListView
|
||||
Private WithEvents columnHeader18 As System.Windows.Forms.ColumnHeader
|
||||
Private WithEvents columnHeader21 As System.Windows.Forms.ColumnHeader
|
||||
Private WithEvents columnHeader19 As System.Windows.Forms.ColumnHeader
|
||||
Private WithEvents columnHeader20 As System.Windows.Forms.ColumnHeader
|
||||
Friend WithEvents Panel2 As System.Windows.Forms.Panel
|
||||
Friend WithEvents btFtpSearch As System.Windows.Forms.Button
|
||||
Friend WithEvents tb_ftppath As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label5 As System.Windows.Forms.Label
|
||||
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||
Friend WithEvents Button2 As System.Windows.Forms.Button
|
||||
Friend WithEvents Panel1 As System.Windows.Forms.Panel
|
||||
Friend WithEvents chk_ftputf8 As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents chk_ftpPassive As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents tb_ftpserver As System.Windows.Forms.TextBox
|
||||
Friend WithEvents tb_ftpport As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label2 As System.Windows.Forms.Label
|
||||
Friend WithEvents tb_ftppass As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label3 As System.Windows.Forms.Label
|
||||
Friend WithEvents tb_ftpid As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label4 As System.Windows.Forms.Label
|
||||
Friend WithEvents Label6 As System.Windows.Forms.Label
|
||||
End Class
|
||||
120
DriveInfo/fFtpPath.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
184
DriveInfo/fFtpPath.vb
Normal file
@@ -0,0 +1,184 @@
|
||||
|
||||
Public Class fFtpPath
|
||||
|
||||
Public Selpath As String = ""
|
||||
Private ftpindex As Integer = 0
|
||||
|
||||
Public Sub New(_host As String, _id As String, _pw As String, _port As Integer,
|
||||
_passive As Boolean, _utf8 As Boolean, _
|
||||
_BasePath As String)
|
||||
|
||||
' 이 호출은 디자이너에 필요합니다.
|
||||
InitializeComponent()
|
||||
|
||||
tb_ftpid.Text = _id
|
||||
tb_ftppass.Text = _pw
|
||||
tb_ftpport.Text = _port.ToString()
|
||||
tb_ftpserver.Text = _host
|
||||
chk_ftpPassive.Checked = _passive
|
||||
chk_ftputf8.Checked = _utf8
|
||||
|
||||
If String.IsNullOrEmpty(_BasePath) Then _BasePath = "/"
|
||||
_BasePath = _BasePath.Replace("\\", "\").Replace("//", "/")
|
||||
tb_ftppath.Text = _BasePath
|
||||
|
||||
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub fFtpPath_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Me.Text = "(원본)FTP경로선택"
|
||||
Me.Show()
|
||||
My.Application.DoEvents()
|
||||
|
||||
'RefreshFile(tb_ftppath.Text)
|
||||
End Sub
|
||||
|
||||
Private Sub RefreshFile(dir As String)
|
||||
If String.IsNullOrEmpty(dir) Then
|
||||
dir = "/"
|
||||
End If
|
||||
|
||||
btFtpSearch.Enabled = False
|
||||
btFtpSearch.Refresh()
|
||||
tb_ftppath.Text = dir
|
||||
lv_ftpde.Items.Clear()
|
||||
|
||||
'//최상위가 아니라면 상위폴더이동을 추가해준다.
|
||||
If dir <> "/" Then
|
||||
Dim lvitem As ListViewItem = Me.lv_ftpde.Items.Add("..")
|
||||
lvitem.ForeColor = Color.DarkMagenta
|
||||
End If
|
||||
|
||||
'//검출된데이터의 갯수
|
||||
Dim dataCount As UInteger = 0
|
||||
|
||||
'//라이브러리종류별로 데이터를 조회한다.
|
||||
Dim isErr As Boolean = False
|
||||
Dim ErrMsg As String = ""
|
||||
FTP_0.CurrentDirectory = dir
|
||||
|
||||
Dim ftpdir As FTPClients.FTPdirectory
|
||||
|
||||
Try
|
||||
ftpdir = FTP_0.ListDirectoryDetail(dir)
|
||||
For Each info As FTPClients.FTPfileInfo In ftpdir.GetDirectories
|
||||
dataCount += 1
|
||||
Dim lvitem As ListViewItem = Me.lv_ftpde.Items.Add(info.Filename)
|
||||
lvitem.SubItems.Add(info.FileType.ToString())
|
||||
lvitem.SubItems.Add("-")
|
||||
lvitem.SubItems.Add(info.FileDateTime.ToString("yy-MM-dd HH:mm:ss"))
|
||||
lvitem.ForeColor = Color.Blue
|
||||
Next
|
||||
|
||||
For Each info As FTPClients.FTPfileInfo In ftpdir.GetFiles("")
|
||||
dataCount += 1
|
||||
Dim lvitem As ListViewItem = Me.lv_ftpde.Items.Add(info.Filename)
|
||||
lvitem.SubItems.Add(info.FileType.ToString())
|
||||
lvitem.SubItems.Add(info.Size.ToString())
|
||||
lvitem.SubItems.Add(info.FileDateTime.ToString("yy-MM-dd HH:mm:ss"))
|
||||
lvitem.ForeColor = Color.Black
|
||||
Next
|
||||
Catch ex As Exception
|
||||
MsgBox("목록갱신실패" + vbCrLf + ex.Message, MsgBoxStyle.Critical, "확인")
|
||||
End Try
|
||||
|
||||
btFtpSearch.Enabled = True
|
||||
btFtpSearch.Refresh()
|
||||
|
||||
If (dataCount < 1) Then
|
||||
MsgBox(String.Format("경로 : {0}" + vbCrLf + "에서 검색된 파일이 없습니다", dir), MsgBoxStyle.Information, "확인")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
Me.Selpath = tb_ftppath.Text
|
||||
DialogResult = Windows.Forms.DialogResult.OK
|
||||
End Sub
|
||||
|
||||
Private Sub lv_ftpde_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles lv_ftpde.MouseDoubleClick
|
||||
If lv_ftpde.SelectedItems.Count < 1 Then
|
||||
MsgBox("대상이 선택되지 않았습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim lv As ListViewItem = lv_ftpde.SelectedItems(0)
|
||||
If lv.Text = ".." Then
|
||||
'//상위폴더로이동
|
||||
Dim curpath As String = tb_ftppath.Text
|
||||
If curpath.EndsWith("/") Then curpath = curpath.Substring(0, curpath.Length - 1)
|
||||
curpath = curpath.Replace("//", "/")
|
||||
Dim curs() As String = curpath.Split("/")
|
||||
Dim parentpath As String = ""
|
||||
For i As Integer = 1 To curs.Length - 1
|
||||
If curs(i - 1) = "" Then Continue For
|
||||
parentpath += "/" + curs(i - 1)
|
||||
Next
|
||||
tb_ftppath.Text = parentpath
|
||||
btFtpSearch.PerformClick()
|
||||
Else
|
||||
Dim ftype As String = lv.SubItems(1).Text
|
||||
Select Case ftype
|
||||
Case "Dir", "Directory"
|
||||
Dim newdir As String = tb_ftppath.Text + "/" + lv.Text
|
||||
newdir = newdir.Replace("//", "/")
|
||||
tb_ftppath.Text = newdir
|
||||
btFtpSearch.PerformClick()
|
||||
Case "File"
|
||||
MsgBox("원본폴더를 선택하세요" + vbCrLf + _
|
||||
"선택을 완료하였다면 상단의 '선택' 버튼을 클릭하세요", MsgBoxStyle.Information, "확인")
|
||||
'If MsgBox("파일을 다운로드 하시겠습니까?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "확인") = MsgBoxResult.Yes Then
|
||||
' Dim file_local As String = path.GetTempPath + "\" + lv.Text
|
||||
' Dim file_remote As String = tb_ftppath.Text + "/" + lv.Text
|
||||
' file_local = file_local.Replace("\\", "\")
|
||||
' file_remote = file_remote.Replace("//", "/")
|
||||
' FTP.download(file_remote, file_local)
|
||||
|
||||
' If System.IO.File.Exists(file_local) Then
|
||||
' Dim fi As New System.IO.FileInfo(file_local)
|
||||
' Dim fs As Long = Long.Parse(lv.SubItems(2).Text)
|
||||
' If fi.Length <> fs Then
|
||||
' MsgBox("다운로드된 파일의 용량이 일치하지 않습니다", MsgBoxStyle.Critical, "확인")
|
||||
' Return
|
||||
' Else
|
||||
' Dim cmd As String = "explorer " + path.GetTempPath
|
||||
' Shell(cmd, AppWinStyle.NormalFocus)
|
||||
' End If
|
||||
' Else
|
||||
' MsgBox("파일이 다운로드 되지 않았습니다", MsgBoxStyle.Critical, "확인")
|
||||
' End If
|
||||
|
||||
'End If
|
||||
End Select
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub btFtpSearch_Click(sender As Object, e As EventArgs) Handles btFtpSearch.Click
|
||||
|
||||
If String.IsNullOrEmpty(tb_ftpserver.Text) Then
|
||||
MsgBox("FTP Server IP는 반드시 입력되어야 합니다", MsgBoxStyle.Critical, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
If Not IsNumeric(tb_ftpport.Text) Then
|
||||
MsgBox("FTP Port(기본값=21)가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
|
||||
tb_ftpport.Text = "21"
|
||||
Return
|
||||
End If
|
||||
|
||||
If String.IsNullOrEmpty(tb_ftppath.Text) Then
|
||||
tb_ftppath.Text = "/"
|
||||
End If
|
||||
|
||||
FTP_0.host = tb_ftpserver.Text + ":" + tb_ftpport.Text
|
||||
FTP_0.user = tb_ftpid.Text
|
||||
FTP_0.pass = tb_ftppass.Text
|
||||
FTP_0.Passive = chk_ftpPassive.Checked
|
||||
FTP_0.utf8 = chk_ftputf8.Checked
|
||||
|
||||
RefreshFile(tb_ftppath.Text)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
BIN
DriveInfo/irea.mdb
Normal file
568
DriveInfo/모듈/Job.vb
Normal file
@@ -0,0 +1,568 @@
|
||||
Module Job
|
||||
|
||||
'//작업을 이어서하는 지 플래그
|
||||
Private Bw As System.Threading.Thread
|
||||
|
||||
Structure RunParam
|
||||
Dim StartP As Integer
|
||||
Dim EndP As Integer
|
||||
Dim WorkDir As String
|
||||
Dim Replay As Boolean
|
||||
Dim isCopy As Boolean '//복사작업인가?
|
||||
Dim 원본폴더조합 As Boolean
|
||||
Dim 확장자 As String
|
||||
|
||||
Public ReadOnly Property isFTPWork As Boolean
|
||||
Get
|
||||
If WorkDir.StartsWith("ftp:") Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
End Structure
|
||||
|
||||
Public Function Run(Param As RunParam) As Boolean
|
||||
|
||||
PLog.Add("작업시작", True)
|
||||
|
||||
'//일반 초기화
|
||||
PLog.Add("시스템초기화")
|
||||
Log = New ArrayList()
|
||||
log2 = New ArrayList()
|
||||
Backupfolder1.Clear() '//기존의 백업폴더명을 삭제한다. (새로쓰기위해서)
|
||||
|
||||
'//원본폴더조합기능이 켜져있는경우
|
||||
If Param.원본폴더조합 Then
|
||||
|
||||
MDiMain.MSG("원본폴더조합시작")
|
||||
MDiMain.SubDirListCler() '//기존목록은 초기화한다.
|
||||
|
||||
'//작업순서에 포함시킨다.
|
||||
Dim lv As ListViewItem = MDiMain.lvSchedule.Items.Add("폴더조합")
|
||||
lv.SubItems.Add("원본")
|
||||
lv.SubItems.Add("지정된 목록으로부터 하위폴더명을 추출합니다.")
|
||||
lv.SubItems.Add("대기")
|
||||
lv.SubItems.Add("-")
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
|
||||
MDiMain.Noti("하위폴더조합 실행")
|
||||
|
||||
'//이어하기 작업이 설정되어있다면?
|
||||
Dim 체크섬 As String = ""
|
||||
If Not Prev_file Is Nothing Then
|
||||
체크섬 = FileCheckSum(Prev_file.FullName)
|
||||
End If
|
||||
Dim jobfile As String = String.Format("{0}\{1}_{2}_{3}_{4}_{5}.job", PathJob, Prev_file.Name, Prev_file.Length, Param.StartP, Param.EndP, 체크섬)
|
||||
Dim 폴더조합불러오기성공 As Boolean = False
|
||||
If Param.Replay Then
|
||||
'//원본폴더조합기능은 직접편집이아니고 불러온 파일명과 해당 파일의 크기가 동일한 기록이 있다면 그것을 이용한다
|
||||
If Not Prev_file Is Nothing AndAlso Prev_file.Exists Then
|
||||
If System.IO.File.Exists(jobfile) Then
|
||||
'//동일한 내역을 가진 job 파일이 있으므로 그것을 이용하도록 한다
|
||||
Dim fi As New System.IO.FileInfo(jobfile)
|
||||
If fi.Length > 0 Then
|
||||
Try
|
||||
Dim buffer As String = System.IO.File.ReadAllText(jobfile)
|
||||
For Each line As String In buffer.Split(vbCrLf)
|
||||
If String.IsNullOrEmpty(line) Then Continue For
|
||||
MDiMain.AddSubDirList(line.Trim())
|
||||
Next
|
||||
폴더조합불러오기성공 = True
|
||||
|
||||
'//현재상태
|
||||
lv.SubItems(2).Text = String.Format("{0}건 의 하위폴더가 설정됨", MDiMain.SubDirCount)
|
||||
lv.SubItems(3).Text = "통과"
|
||||
lv.BackColor = Color.LightSkyBlue
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
|
||||
Catch ex As Exception
|
||||
PLog.Add("폴더조합불러오기오류 : " + ex.Message)
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not 폴더조합불러오기성공 Then
|
||||
'//새로 생성한다.
|
||||
|
||||
'//프로그레스바 초기화
|
||||
MDiMain.ProgressSet(Param.EndP, Param.StartP, Param.StartP)
|
||||
|
||||
'//수량 표시
|
||||
MDiMain.ShowCnt1(Param.StartP, Param.EndP)
|
||||
|
||||
Dim rcnt As Integer = Param.EndP - Param.StartP + 1
|
||||
PLog.Add(String.Format("원본폴더 조합기능 시작({0})", rcnt))
|
||||
|
||||
'//현재작업을 저장해준다
|
||||
Dim JobFileBuf As New System.Text.StringBuilder
|
||||
|
||||
For i As Integer = Param.StartP To Param.EndP
|
||||
MDiMain.ProgressVal(i)
|
||||
|
||||
'//작업진행사항을 표시해준다.
|
||||
lv.SubItems(3).Text = String.Format("{0}/{1}", i, Param.EndP)
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
|
||||
Dim subdir As String = MDiMain.srcd_Get_FileList(i, "", Param.확장자).ToString
|
||||
If subdir = "/" OrElse subdir = "\" OrElse subdir.ToLower().IndexOf("err") <> -1 Then Continue For
|
||||
If Not MDiMain.CheckExistSubDir(subdir) Then
|
||||
MDiMain.AddSubDirList(subdir) '//존재하는 항목은 추가되지 않는다.
|
||||
JobFileBuf.AppendLine(subdir)
|
||||
End If
|
||||
Application.DoEvents()
|
||||
Next
|
||||
|
||||
'//현재상태
|
||||
lv.SubItems(3).Text = "완료"
|
||||
lv.BackColor = Color.LightGreen
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
|
||||
'//완료목록을 저장해준다.
|
||||
System.IO.File.WriteAllText(jobfile, JobFileBuf.ToString())
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'//중간분리자
|
||||
MDiMain.AddScheduleDiv("파일목록 수집")
|
||||
|
||||
'//파일정보수집
|
||||
MDiMain.MSG("파일정보수집")
|
||||
|
||||
'//서브목록이있다면 그것들만 수집힌다.
|
||||
Dim fullsubdir As String
|
||||
Dim 재시도 As Boolean = False
|
||||
retryFileSearch:
|
||||
|
||||
'//폴더내의 파일목록을 수집한다.
|
||||
Dim 수집오류 As Boolean = False
|
||||
If MDiMain.HasSubDir Then '//서브목록이 있다면
|
||||
|
||||
'//프로그레스 설정과 현재 수량 표시
|
||||
MDiMain.ProgressSet(MDiMain.SubDirCount, 0, 0)
|
||||
|
||||
For i As Integer = 1 To MDiMain.SubDirCount
|
||||
MDiMain.ShowCnt1(i, MDiMain.SubDirCount)
|
||||
MDiMain.ProgressVal(i)
|
||||
|
||||
Dim lvSubDir As ListViewItem = MDiMain.list_subdir.Items(i - 1)
|
||||
fullsubdir = CStr(GetWorkDIr() & "\" & lvSubDir.Text).Replace("\\", "\")
|
||||
|
||||
'//대상폴더가 FTP람녀 폴더구분기호를 \ 에서 / 로 변경해야한다.
|
||||
If Param.isFTPWork Then fullsubdir = fullsubdir.Replace("\", "/")
|
||||
|
||||
Dim lvitem As ListViewItem = MDiMain.lvSchedule.Items.Add("검색")
|
||||
lvitem.SubItems.Add(fullsubdir)
|
||||
lvitem.SubItems.Add("파일목록을 작성합니다.")
|
||||
lvitem.SubItems.Add("대기")
|
||||
lvitem.SubItems.Add("-")
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
Application.DoEvents()
|
||||
|
||||
MDiMain.Noti("폴더검색" + vbCrLf + fullsubdir)
|
||||
|
||||
If 재시도 AndAlso lvSubDir.ForeColor <> Color.Red Then
|
||||
'//재시도이므로 처리하지 않는다
|
||||
PLog.Add("재시도작업이므로 확인개체는 처리하지 않습니다(" + lvSubDir.Text + ")")
|
||||
Continue For
|
||||
End If
|
||||
|
||||
'//FTP가 대상일경우에는 별도 처리를 한다.
|
||||
If Param.isFTPWork Then
|
||||
fullsubdir = fullsubdir.Replace("\", "/")
|
||||
Dim ermsg As String = ""
|
||||
Dim fnotfound As Boolean = False
|
||||
Dim filecount As Integer = 0
|
||||
Dim RetryCount As Integer = 0
|
||||
RETRYFTP:
|
||||
RetryCount += 1
|
||||
If Not SearchFTP(Param, lvitem, fullsubdir, ermsg, fnotfound, filecount) Then
|
||||
If Not fnotfound Then
|
||||
'//오류가 발생했다면 3회정도 재시도를 한다.
|
||||
If RetryCount <= MaxRetryCount Then
|
||||
lvitem.ForeColor = Color.DarkMagenta
|
||||
lvitem.SubItems(3).Text = String.Format("{0}/{1}", RetryCount, MaxRetryCount)
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
PLog.Add(String.Format("재시도를 위해서 다음 시간을 기다림 : {0}ms", RetrySleeptime))
|
||||
Threading.Thread.Sleep(RetrySleeptime)
|
||||
Application.DoEvents()
|
||||
GoTo RETRYFTP
|
||||
Else
|
||||
lvitem.ForeColor = Color.White
|
||||
lvitem.BackColor = Color.DarkRed
|
||||
lvitem.SubItems(3).Text = "오류"
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
Application.DoEvents()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
SearchDir(Param, New DirectoryInfo(fullsubdir))
|
||||
Application.DoEvents()
|
||||
End If
|
||||
|
||||
'//delay
|
||||
Threading.Thread.Sleep(1000)
|
||||
Next
|
||||
Else '//없으면 지정된 목록을 기준으로 잡는다
|
||||
'MsgBox("dirinfo" & New DirectoryInfo(GetWorkDIr).FullName)
|
||||
|
||||
If Param.WorkDir.StartsWith("ftp:/") Then
|
||||
Dim ermsg As String = ""
|
||||
Dim fnotfound As Boolean = False
|
||||
Dim filecount As Integer = 0
|
||||
|
||||
Dim lvitem As ListViewItem = MDiMain.lvSchedule.Items.Add("검색")
|
||||
lvitem.SubItems.Add(Param.WorkDir)
|
||||
lvitem.SubItems.Add("FTP 파일명수집")
|
||||
lvitem.SubItems.Add("대기")
|
||||
lvitem.SubItems.Add("-")
|
||||
|
||||
MDiMain.Noti("폴더검색" + vbCrLf + Param.WorkDir)
|
||||
Application.DoEvents()
|
||||
|
||||
If Not SearchFTP(Param, lvitem, GetWorkDIr, ermsg, fnotfound, filecount) Then
|
||||
MsgBox("FTP경로조회가 실패되었습니다" + vbCrLf + ermsg, MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
Log.Add("FTP 파일조회성공 : " + Param.WorkDir + ":" + filecount.ToString())
|
||||
End If
|
||||
Else
|
||||
|
||||
Dim lvitem As ListViewItem = MDiMain.lvSchedule.Items.Add("검색")
|
||||
lvitem.SubItems.Add(Param.WorkDir)
|
||||
lvitem.SubItems.Add("파일명수집")
|
||||
lvitem.SubItems.Add("대기")
|
||||
lvitem.SubItems.Add("-")
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
Application.DoEvents()
|
||||
|
||||
SearchDir(Param, New DirectoryInfo(Param.WorkDir))
|
||||
End If
|
||||
End If
|
||||
|
||||
If 수집오류 Then
|
||||
If MsgBox("파일목록 수집오류가 발생하였습니다 " + vbCrLf + "다시시도 하시겠습니까?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "확인") = MsgBoxResult.Yes Then
|
||||
재시도 = True
|
||||
GoTo retryFileSearch
|
||||
Else
|
||||
MsgBox("현재목록을 가지고 진행합니다", MsgBoxStyle.Information, "확인")
|
||||
End If
|
||||
End If
|
||||
|
||||
Addlog2("전체 그림파일 수 : " & MDiMain.DataSet1.FileList.Rows.Count & "개")
|
||||
PLog.Add(String.Format("Total Image Count : {0}", MDiMain.DataSet1.FileList.Rows.Count))
|
||||
|
||||
If MDiMain.DataSet1.FileList.Rows.Count = 0 Then '//목록이 하나도없다
|
||||
MsgBox("지정된 작업폴더내에 가능한 그림파일이 존재하지않습니다" & vbCrLf & "더이상 진행을 할 수 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End If
|
||||
|
||||
'//중간분리자
|
||||
MDiMain.AddScheduleDiv("원본목록 작성")
|
||||
Application.DoEvents()
|
||||
|
||||
'//원본목록작성
|
||||
MDiMain.MSG("원본목록 작성")
|
||||
Dim SrcTxt As String
|
||||
Dim StartIndex As Integer = getSP()
|
||||
PLog.Add(String.Format("Make SourceList Range {0}~{1}", StartIndex, Ep))
|
||||
MDiMain.Noti("원본목록작성")
|
||||
For i As Integer = StartIndex To Ep
|
||||
MDiMain.ShowCnt1(i, Ep, "원본목록 작성중")
|
||||
SrcTxt = MDiMain.Get_SrcFileList(i + 1)
|
||||
If SrcTxt <> "" AndAlso SrcTxt <> "*" And SrcTxt <> "?" Then
|
||||
MDiMain.DataSet1.SrcList.Rows.Add(New String() {SrcTxt})
|
||||
End If
|
||||
Application.DoEvents()
|
||||
Next
|
||||
Addlog2("원본목록 수 : " & MDiMain.DataSet1.SrcList.Rows.Count & "개")
|
||||
PLog.Add(String.Format("Source List Count ={0}", MDiMain.DataSet1.SrcList.Count))
|
||||
|
||||
|
||||
'//중간분리자
|
||||
MDiMain.AddScheduleDiv("작업목록 작성")
|
||||
Application.DoEvents()
|
||||
|
||||
'//이제 원본목록을 파일목로에서 검색한다. 데이터테이블의 Like 를 이요하면된다.
|
||||
'//그리고 검색된것들은 worklist 로보낸다.
|
||||
MDiMain.Noti("작업목록 작성")
|
||||
If GetrunType() = E_Runtype.Delete Then
|
||||
DeleteFileM(Param)
|
||||
Application.DoEvents()
|
||||
Else
|
||||
MoveFileM(Param)
|
||||
Application.DoEvents()
|
||||
End If
|
||||
|
||||
Addlog2("작업목록 : " & MDiMain.DataSet1.WorkList.Rows.Count & "개")
|
||||
Return True
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 지정된 FTP로부터 파일목록을 수신한다
|
||||
''' </summary>
|
||||
''' <param name="Di"></param>
|
||||
''' <remarks></remarks>
|
||||
Public Function SearchFTP(ByRef Param As RunParam, ByRef lvitem As ListViewItem, ByVal Di As String, ByRef erMsg As String, ByRef NotFound As Boolean, ByRef filecnt As Integer) As Boolean
|
||||
|
||||
Di = Di.Replace("ftp:/", "").Replace("//", "/")
|
||||
If Not Di.StartsWith("/") Then Di = "/" + Di
|
||||
If Di.EndsWith("/") Then Di = Di.Substring(0, Di.Length - 1)
|
||||
If Di.IndexOf("-원본") = -1 Then
|
||||
|
||||
PLog.Add(String.Format("FTP 목록조회 : {0}", Di))
|
||||
|
||||
'//FTP캐쉬폴더가 있다면 그것을 사용한다.(우선은 파일목록에대한 작업이다)
|
||||
Dim CacheDirName As String = PathJob + "\" + FTPServer + "\" + Di.Replace("/", "\") + "\summary.txt"
|
||||
CacheDirName = CacheDirName.Replace("\\", "\")
|
||||
|
||||
'//수집된파일목록
|
||||
Dim filelist As New List(Of String)
|
||||
Dim SubDirList As New List(Of String)
|
||||
Dim 이어하기 As Boolean = False
|
||||
|
||||
'//파일목록수집(기존정보의 사용이 허가된 경우 캐쉬파일에서 정보를 읽는다
|
||||
If Param.Replay AndAlso System.IO.File.Exists(CacheDirName) Then
|
||||
Dim SumFile As New ArinSetting.ArinSetting(CacheDirName)
|
||||
Dim 파일목록 As String = SumFile.Data("file", "list")
|
||||
For Each 파일 As String In 파일목록.Split(",")
|
||||
If String.IsNullOrEmpty(파일) Then Continue For
|
||||
If filelist.IndexOf(파일) = -1 Then filelist.Add(파일)
|
||||
Next
|
||||
Application.DoEvents()
|
||||
Dim 하위폴더목록 As String = SumFile.Data("subdir", "list")
|
||||
For Each 파일 As String In 하위폴더목록.Split(",")
|
||||
If String.IsNullOrEmpty(파일) Then Continue For
|
||||
If SubDirList.IndexOf(파일) = -1 Then SubDirList.Add(파일)
|
||||
Next
|
||||
If filelist.Count > 0 Then 이어하기 = True
|
||||
Application.DoEvents()
|
||||
End If
|
||||
|
||||
'//파일목록이 불러와진게 없다면 FTP에서 조회를 시작한다.
|
||||
If filelist.Count < 1 Then
|
||||
|
||||
Dim isErr As Boolean = False
|
||||
Dim ErrMsg As String = ""
|
||||
Dim dirlist As FTPClients.FTPdirectory
|
||||
Try
|
||||
dirlist = FTP_0.ListDirectoryDetail(Di)
|
||||
Catch exw As System.Net.WebException
|
||||
|
||||
If TypeOf (exw.Response) Is System.Net.FtpWebResponse Then
|
||||
|
||||
PLog.Add("FTP목록조회오류(WEBEX) : " + exw.Message, True)
|
||||
Dim ftpdesc As String = CType(exw.Response, System.Net.FtpWebResponse).StatusDescription
|
||||
If ftpdesc.ToLower.IndexOf("directory not found") <> -1 Then
|
||||
PLog.Add("폴더없음 오류코드이므로 정상 처리로 한다", True)
|
||||
NotFound = True
|
||||
erMsg = ftpdesc
|
||||
|
||||
lvitem.SubItems(2).Text = "폴더가 존재하지 않습니다"
|
||||
lvitem.SubItems(3).Text = "완료"
|
||||
lvitem.BackColor = Color.White '//성공했다
|
||||
lvitem.ForeColor = Color.DimGray
|
||||
Return False
|
||||
Else
|
||||
erMsg = exw.Message
|
||||
lvitem.SubItems(2).Text = exw.Message
|
||||
lvitem.SubItems(3).Text = "오류"
|
||||
lvitem.BackColor = Color.Red
|
||||
lvitem.ForeColor = Color.White
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
PLog.Add("FTP목록조회오류(WEBEX-2) : " + exw.Message, True)
|
||||
erMsg = exw.Message
|
||||
lvitem.SubItems(2).Text = exw.Message
|
||||
lvitem.SubItems(3).Text = "오류"
|
||||
lvitem.BackColor = Color.Red
|
||||
lvitem.ForeColor = Color.White
|
||||
Return False
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
PLog.Add("FTP목록조회오류(기타) : " + ex.Message, True)
|
||||
erMsg = ex.Message
|
||||
lvitem.SubItems(2).Text = ex.Message
|
||||
lvitem.SubItems(3).Text = "오류"
|
||||
lvitem.BackColor = Color.Red
|
||||
lvitem.ForeColor = Color.White
|
||||
Return False
|
||||
End Try
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
'//파일목록을 저장해서 캐쉬로사용하도록 한다.
|
||||
Dim sb_FileList As New System.Text.StringBuilder
|
||||
Dim fcnt1 As UInteger = 0
|
||||
For Each info As FTPClients.FTPfileInfo In dirlist.GetFiles(Param.확장자)
|
||||
If info.FileType <> FTPClients.FTPfileInfo.DirectoryEntryTypes.File Then Continue For
|
||||
fcnt1 += 1
|
||||
sb_FileList.Append("," + info.Filename)
|
||||
filelist.Add(info.Filename)
|
||||
'//If filelist.Count Mod 50 = 0 Then
|
||||
Application.DoEvents() '//160831
|
||||
'//End If
|
||||
Next
|
||||
|
||||
''//ftp에러 오류없이 처리되었따
|
||||
'lvitem.ForeColor = Color.Black
|
||||
'lvitem.SubItems(2).Text = fcnt1.ToString()
|
||||
'lvitem.SubItems(3).Text = "완료"
|
||||
'If fcnt1 < 1 Then
|
||||
' lvitem.BackColor = Color.WhiteSmoke '//성공했지만 파일은 없었다
|
||||
'Else
|
||||
' lvitem.BackColor = Color.LightGreen '//성공했다
|
||||
'End If
|
||||
|
||||
'//캐쉬파일을 생성해준다. 160716
|
||||
Dim fiCache As New System.IO.FileInfo(CacheDirName)
|
||||
If Not fiCache.Directory.Exists Then fiCache.Directory.Create()
|
||||
Dim summary As New ArinSetting.ArinSetting(fiCache.FullName)
|
||||
If Not summary.Exist Then summary.CreateFile()
|
||||
summary.Data("file", "count", "") = fcnt1.ToString()
|
||||
summary.Data("file", "list", "") = sb_FileList.ToString()
|
||||
|
||||
Application.DoEvents()
|
||||
Dim foldlist2 As New System.Text.StringBuilder
|
||||
For Each info As FTPClients.FTPfileInfo In dirlist.GetDirectories
|
||||
SubDirList.Add(info.NameOnly)
|
||||
foldlist2.Append("," + info.NameOnly)
|
||||
Next
|
||||
|
||||
'//하위목록도 저장해준다.
|
||||
summary.Data("subdir", "count", "") = SubDirList.Count.ToString()
|
||||
summary.Data("subdir", "list", "") = foldlist2.ToString()
|
||||
summary.Save()
|
||||
Application.DoEvents()
|
||||
End If
|
||||
|
||||
'//수집된 파일목록을 데이터테이블에 기록한다.
|
||||
Dim fcnt As Integer = 0
|
||||
For Each File As String In filelist
|
||||
fcnt += 1
|
||||
MDiMain.MSG(MDiMain.DataSet1.FileList.Rows.Count & "개의 파일정보를 수집했습니다")
|
||||
MDiMain.DataSet1.FileList.Rows.Add(New String() {Di, File})
|
||||
Application.DoEvents()
|
||||
Next
|
||||
filecnt += fcnt
|
||||
lvitem.SubItems(2).Text = String.Format("{0}", fcnt)
|
||||
|
||||
If 이어하기 Then
|
||||
lvitem.SubItems(3).Text = "통과"
|
||||
lvitem.BackColor = Color.LightSkyBlue
|
||||
Else
|
||||
lvitem.SubItems(3).Text = "완료"
|
||||
lvitem.BackColor = Color.LightGreen '//성공했다
|
||||
End If
|
||||
|
||||
If fcnt = 0 Then
|
||||
lvitem.ForeColor = Color.Gray
|
||||
Else
|
||||
lvitem.ForeColor = Color.Black
|
||||
End If
|
||||
|
||||
|
||||
PLog.Add(String.Format("폴더검색결과({0}) 파일={1},폴더={2}", Di, filelist.Count, SubDirList.Count))
|
||||
MDiMain.MSG(MDiMain.DataSet1.FileList.Rows.Count & "개의 파일정보를 수집했습니다")
|
||||
Application.DoEvents()
|
||||
|
||||
'//해당폴더의 서브폴더를 체크하도록 하였다면?
|
||||
If GetSubDir() Then
|
||||
|
||||
'//여기서 폴더정보를 다시 수집한다.
|
||||
For Each DD As String In SubDirList
|
||||
Dim subpath As String = Di + "/" + DD
|
||||
subpath = subpath.Replace("//", "/")
|
||||
subpath = subpath.Replace("\", "/")
|
||||
PLog.Add(String.Format("Entering Subdir : {0}", subpath))
|
||||
|
||||
Dim fnotfound As Boolean
|
||||
Dim filecount As Integer
|
||||
Dim lvitemS As ListViewItem = MDiMain.lvSchedule.Items.Add("검색")
|
||||
lvitemS.SubItems.Add(subpath)
|
||||
lvitemS.SubItems.Add("FTP 파일명수집")
|
||||
lvitemS.SubItems.Add("대기")
|
||||
lvitemS.SubItems.Add("-")
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
Application.DoEvents()
|
||||
|
||||
Dim RetryCount As Integer = 0
|
||||
RETRYFTP:
|
||||
|
||||
If Not SearchFTP(Param, lvitemS, subpath, erMsg, fnotfound, filecount) Then
|
||||
If Not fnotfound Then
|
||||
'//오류가발생했지만 오류내용이 없다는 오류이다.(정상처리해야함)
|
||||
If RetryCount <= MaxRetryCount Then
|
||||
lvitem.ForeColor = Color.DarkMagenta
|
||||
lvitem.SubItems(3).Text = String.Format("{0}/{1}", RetryCount, MaxRetryCount)
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
PLog.Add(String.Format("재시도를 위해서 다음 시간을 기다림 : {0}ms", RetrySleeptime))
|
||||
Threading.Thread.Sleep(RetrySleeptime)
|
||||
Application.DoEvents()
|
||||
GoTo RETRYFTP
|
||||
Else
|
||||
lvitem.ForeColor = Color.White
|
||||
lvitem.BackColor = Color.DarkRed
|
||||
lvitem.SubItems(3).Text = "오류"
|
||||
MDiMain.lvSchedule.Refresh()
|
||||
Application.DoEvents()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
PLog.Add("SearchFTP Skip : " + Di)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 해당디렉토리로부터 파일정보를 수집한다
|
||||
''' </summary>
|
||||
''' <param name="Di"></param>
|
||||
''' <remarks></remarks>
|
||||
Public Function SearchDir(ByRef Param As RunParam, ByVal Di As DirectoryInfo) As Boolean
|
||||
If Di.Exists = False Then
|
||||
PLog.Add("폴더내파일검색 : 폴더없음 : " + Di.FullName, True)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Di.FullName.IndexOf("-원본") = -1 Then
|
||||
|
||||
PLog.Add("폴더내 파일검색 : " + Di.FullName)
|
||||
|
||||
Try
|
||||
Dim FI() As FileInfo = Di.GetFiles("*." + Param.확장자)
|
||||
For Each F As FileInfo In FI
|
||||
MDiMain.MSG(MDiMain.DataSet1.FileList.Rows.Count & "개의 파일정보를 수집했습니다")
|
||||
MDiMain.DataSet1.FileList.Rows.Add(New String() {F.DirectoryName, F.Name})
|
||||
Application.DoEvents()
|
||||
Next
|
||||
Application.DoEvents()
|
||||
If GetSubDir() Then
|
||||
For Each DD As DirectoryInfo In Di.GetDirectories
|
||||
SearchDir(Param, DD)
|
||||
Next
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox("폴더정보를 불러오는데 실패했습니다" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "확인")
|
||||
Return False
|
||||
End Try
|
||||
Else
|
||||
PLog.Add("폴더내파일검색 : 원본폴더로인한 통과 : " + Di.FullName, True)
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
End Module
|
||||
182
DriveInfo/모듈/Mod_Backup.vb
Normal file
@@ -0,0 +1,182 @@
|
||||
Imports System.IO
|
||||
'----------------------------------
|
||||
' backup Class
|
||||
'---------------------------------
|
||||
Module Mod_Backup
|
||||
Public Backupfolder1 As New ArrayList
|
||||
|
||||
Private Function ExistBakFolder1(ByVal FolderName As String) As Boolean
|
||||
'//지정된 폴더가 백업된 폴더목록에 존재하는지
|
||||
'addlog("기존백업폴더목록에 저장되어잇는지 : " & Backupfolder.IndexOf(FolderName))
|
||||
If Backupfolder1.IndexOf(FolderName) >= 0 Then Return True
|
||||
If MDiMain.cbBakTarget.SelectedIndex = 0 Then
|
||||
'//백업정책1이 폴더백업이고 하위폴더포함한 백업일경우에는 상위폴더가 백업되어잇는지 찾아야한다.
|
||||
For Each P As String In Backupfolder1 '//백업된 폴더의 모든 폴더명을 루프로돈다.
|
||||
'//백업된 폴더명이 루트라면 지금의 폴더명보다 더 짧을것이다. indexof 로 찾는다.
|
||||
If FolderName.ToUpper.IndexOf(P.ToUpper) >= 0 Then Return True
|
||||
Next
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub Check_Backup(ByVal fn As FileInfo, Optional ByVal tag As String = "")
|
||||
Dim BT1 As E_baktype = GetBackType1() '//백업정책의 형태를 가져온다.
|
||||
If BT1 <> E_baktype.none Then
|
||||
If MDiMain.cbBakTarget.SelectedIndex = 0 Then
|
||||
Try
|
||||
BT1WorkFD(BT1, fn, tag & "D") ' & "_FD") '//폴더백업
|
||||
Catch ex As Exception
|
||||
Errlog("BT1WorkFD 정의" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
Else
|
||||
Try
|
||||
BT1WorkFL(BT1, fn, tag & "F") ' & "_FL") '//파일백업
|
||||
Catch ex As Exception
|
||||
Errlog("BT1WorkFL 정의" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Private Sub BT1WorkFL(ByVal bt1 As E_baktype, ByVal fn As FileInfo, ByVal tag As String)
|
||||
Dim NewFn As String
|
||||
Dim NFN As FileInfo
|
||||
Select Case bt1
|
||||
Case E_baktype.none '//아무것도 하지않는다.
|
||||
Case E_baktype.Folder1 '//지정된 1번 폴더에 복사를 해놓는다. 바귄파일의 상위폴더명을 원래폳러명+날짜+태그 로 한다.
|
||||
NewFn = fn.FullName.ToUpper.Replace(GetWorkDIr.ToUpper, GetBakDir1.ToUpper & "\" & tag) '//작업폴더명은 백업폴더명으로 변경
|
||||
NFN = New FileInfo(NewFn)
|
||||
Addlog("B", fn.FullName, NFN.FullName, "파일백업(정책1-사용자지정폴더1)")
|
||||
NFN.Directory.Create() '//디렉토리생성
|
||||
fn.CopyTo(NFN.FullName, True)
|
||||
Case E_baktype.CurrnetFolder '//해당파일이 발견된 폴더의 하위폴더를 생성해서 백업 폴더명은 위에꺼 참고
|
||||
NewFn = fn.DirectoryName & "\BAK_" & tag & "\" & fn.Name '//현재폴더에 태그명으로 폴더를 만들고 그곳에 파일을 저장한다.
|
||||
NFN = New FileInfo(NewFn)
|
||||
Addlog("B", fn.FullName, NFN.FullName, "파일백업(정책1-현재폴더)")
|
||||
NFN.Directory.Create() '//디렉토리생성
|
||||
fn.CopyTo(NFN.FullName, True)
|
||||
Case E_baktype.ParentFolder '//해당파일이 발견된 폴더의 상위폴더를 생성 폳러명 위 참조
|
||||
NewFn = fn.Directory.FullName & tag & "\" & fn.Name '//상위폴더에 생성
|
||||
NFN = New FileInfo(NewFn)
|
||||
Addlog("B", fn.FullName, NFN.FullName, "파일백업(정책1-상위폴더)")
|
||||
NFN.Directory.Create() '//디렉토리생성
|
||||
fn.CopyTo(NFN.FullName, True)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub BT1WorkFD(ByVal bt1 As E_baktype, ByVal fn As FileInfo, ByVal tag As String) '//백업정책1 폴더백업
|
||||
Dim NewFn As String
|
||||
Dim NFN As FileInfo
|
||||
Dim FL() As FileInfo
|
||||
Select Case bt1
|
||||
Case E_baktype.none '//아무것도 하지않는다.
|
||||
Case E_baktype.Folder1 '//지정된 1번 폴더에 복사를 해놓는다. 바귄파일의 상위폴더명을 원래폳러명+날짜+태그 로 한다.
|
||||
'Addlog2("백업사용자폴더1 파일명 : " & fn.FullName & " 태그:" & tag)
|
||||
NewFn = fn.FullName.ToUpper.Replace(GetWorkDIr.ToUpper, GetBakDir1.ToUpper & "\" & tag) '//작업폴더명은 백업폴더명으로 변경
|
||||
NewFn = NewFn.Replace("\\", "\")
|
||||
'Addlog2("백업형태로 변경된 파일명 : " & NewFn)
|
||||
NFN = New FileInfo(NewFn)
|
||||
'//백업된폴더목록에 해당 목록이없으면
|
||||
If ExistBakFolder1(NFN.DirectoryName) = False Then
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업중...")
|
||||
MDiMain.Refresh()
|
||||
Addlog("B", fn.FullName, NFN.FullName, "폴더백업(정책1-사용자지정폴더1)")
|
||||
'//원본폴더의 모든 내용을 복사해논다.
|
||||
Directory.CreateDirectory(NFN.DirectoryName) '//디렉토리생성
|
||||
FL = New DirectoryInfo(fn.DirectoryName).GetFiles("*.*", SearchOption.AllDirectories) '//파일목록을 가져온다.
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = FL.Length
|
||||
|
||||
For Each F As FileInfo In FL
|
||||
index += 1
|
||||
MDiMain.ShowCnt2(index, endcnt, "백업")
|
||||
My.Application.DoEvents()
|
||||
Try
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As System.IO.DirectoryNotFoundException
|
||||
Dim B As New System.IO.FileInfo(NFN.DirectoryName & "\" & F.Name)
|
||||
System.IO.Directory.CreateDirectory(B.DirectoryName)
|
||||
B = Nothing
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As Exception
|
||||
MsgBox("파일복사오류 : " & vbCrLf & ex.Message, MsgBoxStyle.Critical, "확인")
|
||||
End Try
|
||||
Next
|
||||
Backupfolder1.Add(NFN.DirectoryName)
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업완료.")
|
||||
MDiMain.Refresh()
|
||||
End If
|
||||
Case E_baktype.CurrnetFolder '//해당파일이 발견된 폴더의 하위폴더를 생성해서 백업 폴더명은 위에꺼 참고
|
||||
NewFn = fn.DirectoryName & "\BAK_" & tag & "\" & fn.Name '//현재폴더에 태그명으로 폴더를 만들고 그곳에 파일을 저장한다.
|
||||
NFN = New FileInfo(NewFn)
|
||||
'//백업된폴더목록에 해당 목록이없으면
|
||||
If ExistBakFolder1(NFN.DirectoryName) = False Then
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업중...")
|
||||
MDiMain.Refresh()
|
||||
Addlog("B", fn.FullName, NFN.FullName, "폴더백업(정책1-현재폴더)")
|
||||
'//원본폴더의 모든 내용을 복사해논다.
|
||||
Directory.CreateDirectory(NFN.DirectoryName) '//디렉토리생성
|
||||
FL = New DirectoryInfo(fn.DirectoryName).GetFiles("*.*", SearchOption.AllDirectories)
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = FL.Length
|
||||
|
||||
For Each F As FileInfo In FL
|
||||
index += 1
|
||||
MDiMain.ShowCnt2(index, endcnt, "백업")
|
||||
My.Application.DoEvents()
|
||||
Try
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As System.IO.DirectoryNotFoundException
|
||||
Dim B As New System.IO.FileInfo(NFN.DirectoryName & "\" & F.Name)
|
||||
System.IO.Directory.CreateDirectory(B.DirectoryName)
|
||||
B = Nothing
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As Exception
|
||||
MsgBox("파일복사오류 : " & vbCrLf & ex.Message, MsgBoxStyle.Critical, "확인")
|
||||
End Try
|
||||
Next
|
||||
Backupfolder1.Add(NFN.DirectoryName)
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업완료.")
|
||||
MDiMain.Refresh()
|
||||
End If
|
||||
Case E_baktype.ParentFolder '//해당파일이 발견된 폴더의 상위폴더를 생성 폳러명 위 참조
|
||||
NewFn = fn.Directory.FullName & tag & "\" & fn.Name '//상위폴더에 생성
|
||||
NFN = New FileInfo(NewFn)
|
||||
If ExistBakFolder1(NFN.DirectoryName) = False Then
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업중...")
|
||||
MDiMain.Refresh()
|
||||
addlog("B", fn.FullName, NFN.FullName, "폴더백업(정책1-상위폴더)")
|
||||
'//원본폴더의 모든 내용을 복사해논다.
|
||||
Directory.CreateDirectory(NFN.DirectoryName) '//디렉토리생성
|
||||
FL = New DirectoryInfo(fn.DirectoryName).GetFiles("*.*", SearchOption.AllDirectories)
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = FL.Length
|
||||
For Each F As FileInfo In FL
|
||||
index += 1
|
||||
MDiMain.ShowCnt2(index, endcnt, "백업")
|
||||
My.Application.DoEvents()
|
||||
Try
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As System.IO.DirectoryNotFoundException
|
||||
Dim B As New System.IO.FileInfo(NFN.DirectoryName & "\" & F.Name)
|
||||
System.IO.Directory.CreateDirectory(B.DirectoryName)
|
||||
B = Nothing
|
||||
F.CopyTo(NFN.DirectoryName & "\" & F.Name, True) '//새로운경로로 복사를 한다.
|
||||
Catch ex As Exception
|
||||
MsgBox("파일복사오류 : " & vbCrLf & ex.Message, MsgBoxStyle.Critical, "확인")
|
||||
End Try
|
||||
Next
|
||||
Backupfolder1.Add(NFN.DirectoryName)
|
||||
MDiMain.MSG(NFN.DirectoryName & "폴더 백업완료.")
|
||||
MDiMain.Refresh()
|
||||
End If
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
End Module
|
||||
494
DriveInfo/모듈/Mod_Move.vb
Normal file
@@ -0,0 +1,494 @@
|
||||
Imports System.IO
|
||||
Imports System.Threading
|
||||
Imports System.Text
|
||||
|
||||
Module Mod_Move '//파일이동 모듈파일
|
||||
Public Sub MoveFileM(Param As RunParam) '//파일목록으로부터 삭제대상폴더의 파일을 삭제한다.
|
||||
Dim StrBuff As New StringBuilder
|
||||
Dim WorkDes As String = IIf(GetrunType() = E_Runtype.Move, "이동", "복사")
|
||||
|
||||
'//작업목록을 작성합니다.
|
||||
MDiMain.MSG(WorkDes & "목록 작성중.")
|
||||
|
||||
'//변수목록
|
||||
Dim NR As ireaDataSet.WorkListRow
|
||||
Dim WRow() As ireaDataSet.FileListRow
|
||||
Dim DesDir As DirectoryInfo
|
||||
Dim DesFile As FileInfo
|
||||
Dim SrcOffset As Long = 0 '//원본목록에서의 레코드위치(대상파일을 생성하려면 줄번호를 기억해야한다.)
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.SrcList.Rows.Count - 1
|
||||
|
||||
If MDiMain.DataSet1.SrcList Is Nothing Then
|
||||
MsgBox("원본목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
For Each drs As ireaDataSet.SrcListRow In MDiMain.DataSet1.SrcList.Rows
|
||||
|
||||
If MDiMain.DataSet1.FileList Is Nothing Then
|
||||
MsgBox("파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
index += 1
|
||||
MDiMain.ShowCnt1(index, endcnt, "목록작성")
|
||||
Application.DoEvents()
|
||||
|
||||
'//전체목록에서 원본목록 검색
|
||||
Try
|
||||
WRow = MDiMain.DataSet1.FileList.Select("파일명 like '" & drs.목록명.Replace("'", "''") & "'") '//170410 홑따옴표 처리 및 오류처리기능 추가
|
||||
Catch ex As Exception
|
||||
|
||||
'//오류가 발생했으므로 오류로 기록하고 넘긴다.
|
||||
WRow = Nothing
|
||||
NR = MDiMain.DataSet1.WorkList.NewWorkListRow
|
||||
NR.원본경로 = String.Empty
|
||||
NR.원본파일명 = drs.목록명
|
||||
Select Case GetrunType()
|
||||
Case E_Runtype.Copy
|
||||
NR.구분 = "복사"
|
||||
Case E_Runtype.Delete
|
||||
NR.구분 = "삭제"
|
||||
Case E_Runtype.Move
|
||||
NR.구분 = "이동"
|
||||
End Select
|
||||
NR.대상경로 = String.Empty
|
||||
NR.대상파일명 = String.Empty
|
||||
NR.오류 = "파일추출실패:" + ex.Message
|
||||
Try
|
||||
MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
Catch ex2 As Exception '//추가오류는 뻔하다이미 그 파일이 있는경우다.
|
||||
Continue For
|
||||
End Try
|
||||
End Try
|
||||
|
||||
SrcOffset = index + getSP() - 1 '//줄시작값과 현재의 오프셋을 더한다.
|
||||
Dim loopcnt2 As Integer = 0
|
||||
For Each dr As ireaDataSet.FileListRow In WRow
|
||||
|
||||
NR = MDiMain.DataSet1.WorkList.NewWorkListRow
|
||||
NR.원본경로 = dr.경로
|
||||
NR.원본파일명 = dr.파일명
|
||||
Select Case GetrunType()
|
||||
Case E_Runtype.Copy
|
||||
NR.구분 = "복사"
|
||||
Case E_Runtype.Delete
|
||||
NR.구분 = "삭제"
|
||||
Case E_Runtype.Move
|
||||
NR.구분 = "이동"
|
||||
End Select
|
||||
|
||||
loopcnt2 += 1
|
||||
Application.DoEvents()
|
||||
|
||||
'//검색된것들은 이동또는 복사대상이므로 작업목록에 집어넣는다.
|
||||
'//대상파일명을 생성한다.
|
||||
NR.오류 = ""
|
||||
|
||||
Try
|
||||
DesDir = New DirectoryInfo(MDiMain.DESD_GetDesDir(SrcOffset, dr.파일명.Substring(0, dr.파일명.LastIndexOf(".")), GetExtendOnly, dr.경로.Substring(GetWorkDIr.Length)))
|
||||
NR.대상경로 = DesFile.DirectoryName
|
||||
Catch ex As Exception
|
||||
NR.대상경로 = ""
|
||||
NR.오류 += ex.Message
|
||||
End Try
|
||||
|
||||
Try
|
||||
DesFile = New FileInfo(DesDir.FullName & "\" & MDiMain.Desf_Get_FileList(SrcOffset, dr.파일명.Substring(0, dr.파일명.LastIndexOf(".")), GetExtendOnly) & Pub.GetExtendFromMdi.Trim("*"))
|
||||
NR.대상파일명 = DesFile.Name
|
||||
Catch ex As Exception
|
||||
NR.대상파일명 = ""
|
||||
NR.오류 += ex.Message
|
||||
End Try
|
||||
|
||||
If NR.오류 <> "" Then
|
||||
'//이미오류가 발생했다.
|
||||
Try
|
||||
MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
Catch ex As Exception '//추가오류는 뻔하다이미 그 파일이 있는경우다.
|
||||
|
||||
End Try
|
||||
Else
|
||||
If DesFile.Name.IndexOf("*") = -1 AndAlso DesFile.Name.IndexOf("?") = -1 Then
|
||||
|
||||
Try
|
||||
MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
Catch ex As Exception '//추가오류는 뻔하다이미 그 파일이 있는경우다.
|
||||
NR.오류 += ",중복된 대상파일입니다(" & ex.Message.ToString & ")"
|
||||
'MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
makelog2("중복된 대상파일이 생성되었습니다")
|
||||
makelog2(" 원본파일명 : " & NR.원본경로 & "\" & NR.원본파일명)
|
||||
makelog2(" 대상파일명 : " & NR.대상경로 & "\" & NR.대상파일명)
|
||||
'If MsgBox("중복된 대상파일이 확인되었습니다" & vbCrLf & vbCrLf & "계속하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
|
||||
' Return
|
||||
'End If
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Application.DoEvents()
|
||||
Next
|
||||
Next
|
||||
MDiMain.MSG(WorkDes & "목록 작성완료.")
|
||||
MDiMain.MSG(WorkDes & "연속참조 검사")
|
||||
index = 0
|
||||
Dim Rc As Integer = MDiMain.DataSet1.WorkList.Rows.Count
|
||||
Dim 원본파일명, 원본경로, 대상파일명, 대상경로 As String
|
||||
Dim 시퀀스 As Integer
|
||||
Dim Findrow As Boolean = False
|
||||
Application.DoEvents()
|
||||
For Each dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows
|
||||
Findrow = False
|
||||
index += 1
|
||||
MDiMain.ShowCnt1(index, Rc, "연속참조검사")
|
||||
원본파일명 = dr.원본파일명
|
||||
원본경로 = dr.원본경로
|
||||
대상파일명 = dr.대상파일명
|
||||
대상경로 = dr.대상경로
|
||||
시퀀스 = dr.seq
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
If 원본파일명 <> "" Then
|
||||
Dim dr2() As ireaDataSet.WorkListRow = MDiMain.DataSet1.WorkList.Select("대상파일명='" & 원본파일명 & "' and 대상경로='" & 원본경로 & "' and seq <> " & 시퀀스)
|
||||
For Each Drow2 As ireaDataSet.WorkListRow In dr2
|
||||
Findrow = True
|
||||
Drow2.성공 = "◈"
|
||||
Drow2.오류 = "연속참조오류:" & index
|
||||
Next
|
||||
If Findrow Then
|
||||
dr.성공 = "◈"
|
||||
dr.오류 = "연속참조오류"
|
||||
End If
|
||||
End If
|
||||
|
||||
If 대상파일명 <> "" Then
|
||||
Dim dr2() As ireaDataSet.WorkListRow = MDiMain.DataSet1.WorkList.Select("원본파일명='" & 대상파일명 & "' and 원본경로='" & 대상경로 & "' and seq <> " & 시퀀스)
|
||||
For Each Drow2 As ireaDataSet.WorkListRow In dr2
|
||||
Findrow = True
|
||||
Drow2.성공 = "◈"
|
||||
Drow2.오류 = "연속참조오류:" & index
|
||||
Next
|
||||
If Findrow Then
|
||||
dr.성공 = "◈"
|
||||
dr.오류 = "연속참조오류"
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
'//오류를 제외한 실제 처리할 내용을 리스트뷰에 넣는다
|
||||
'//작업대상을 지정해준다.
|
||||
Dim 작업갯수 As Integer = 0
|
||||
Dim DRows() As System.Data.DataRow = MDiMain.DataSet1.WorkList.Select("isnull(오류,'')=''")
|
||||
MDiMain.AddScheduleDiv(" " + DRows.Length.ToString() + " 개의 작업대상이 설정되었습니다")
|
||||
|
||||
Dim loopcnt As Integer = 0
|
||||
For Each dr As ireaDataSet.WorkListRow In DRows
|
||||
Dim lvKey As String = dr.대상경로 + "\" + dr.대상파일명
|
||||
|
||||
Dim 원본파일 As String = dr.원본경로 + "\" + dr.원본파일명
|
||||
Dim 대상파일 As String = dr.대상경로 + "\" + dr.대상파일명
|
||||
If Param.isFTPWork Then
|
||||
원본파일 = 원본파일.Replace("\", "/")
|
||||
대상파일 = 대상파일.Replace("\", "/")
|
||||
End If
|
||||
|
||||
loopcnt += 1
|
||||
Application.DoEvents()
|
||||
|
||||
|
||||
'If MDiMain.lvSchedule.Items.IndexOfKey(lvKey) = -1 Then
|
||||
' 작업갯수 += 1
|
||||
' Dim lvSC As ListViewItem = MDiMain.lvSchedule.Items.Add(lvKey, dr.구분, 0)
|
||||
' lvSC.SubItems.Add(원본파일)
|
||||
' lvSC.SubItems.Add(대상파일)
|
||||
' lvSC.SubItems.Add("대기")
|
||||
' lvSC.SubItems.Add(작업갯수.ToString())
|
||||
' lvSC.ForeColor = Color.DarkMagenta
|
||||
|
||||
' '//명령파라미터추가
|
||||
' 'Dim NewCmd As New SJobCommand()
|
||||
' 'Select Case dr.구분
|
||||
' ' Case "복사"
|
||||
' ' NewCmd.Mode = E_Runtype.Copy
|
||||
' ' Case "삭제"
|
||||
' ' NewCmd.Mode = E_Runtype.Delete
|
||||
' ' Case "이동"
|
||||
' ' NewCmd.Mode = E_Runtype.Move
|
||||
' 'End Select
|
||||
' 'NewCmd.SrcDir = dr.원본경로
|
||||
' 'NewCmd.SrcFile = dr.원본파일명
|
||||
' 'NewCmd.DesDir = dr.대상경로
|
||||
' 'NewCmd.DesFile = dr.대상파일명
|
||||
' 'NewCmd.isFTP = Param.isFTPWork
|
||||
' 'lvSC.Tag = NewCmd
|
||||
|
||||
'Else
|
||||
' PLog.Add("중복대상파일:" + lvKey)
|
||||
'End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub MoveFileRMove(winhide As Boolean)
|
||||
Dim SrcFI, DesFi As FileInfo
|
||||
Dim Errcount As Integer = 0
|
||||
|
||||
MDiMain.MSG("파일이동중...")
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.WorkList.Rows.Count - 1
|
||||
|
||||
If MDiMain.DataSet1.WorkList Is Nothing Then
|
||||
MsgBox("작업파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
For Each Dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows
|
||||
index += 1
|
||||
MDiMain.ShowCnt1(index, endcnt, "파일이동")
|
||||
My.Application.DoEvents()
|
||||
|
||||
If Dr.오류 <> "" Then
|
||||
Errlog("선오류감지되어서 넘어갑니다(" & Dr.오류 & ")")
|
||||
Errcount += 1
|
||||
Else
|
||||
|
||||
Dim 원본파일명 As String = Dr.원본경로 & "\" & Dr.원본파일명
|
||||
Dim 대상파일명 As String = Dr.대상경로 & "\" & Dr.대상파일명
|
||||
|
||||
If Not isFileName(원본파일명) Then
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "원본파일명이 올바르지 않습니다:" + 원본파일명
|
||||
ElseIf Not isFileName(대상파일명) Then
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "대상파일명이 올바르지 않습니다:" + 대상파일명
|
||||
Else
|
||||
SrcFI = New System.IO.FileInfo(원본파일명)
|
||||
DesFi = New System.IO.FileInfo(대상파일명)
|
||||
|
||||
Try
|
||||
Check_Backup(SrcFI, BakTag)
|
||||
Catch ex As Exception
|
||||
MsgBox("백업정책(Check_Backup이 실패했습니다)" & vbCrLf & "Baktag=" & BakTag & vbCrLf & "오류내용:" & ex.Message.ToString, MsgBoxStyle.Information, "메일보내주세요")
|
||||
End Try
|
||||
Application.DoEvents()
|
||||
|
||||
'//폴더생성시 오류가 발생할수있다.
|
||||
If Not System.IO.Directory.Exists(Dr.대상경로) Then
|
||||
If Not DirCreate(Dr.대상경로) Then
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "대상폴더생성실패:" + Dr.대상경로
|
||||
Errcount += 1
|
||||
Continue For
|
||||
End If
|
||||
End If
|
||||
Application.DoEvents()
|
||||
|
||||
Try
|
||||
'//대상파일이존재한다면 넘어가도록 한다.
|
||||
If DesFi.Exists AndAlso DesFi.Length = SrcFI.Length Then
|
||||
Dr.성공 = "△"
|
||||
Dr.오류 = "대상파일존재 넘어감"
|
||||
'DesFi.Delete() '//덮어쓰기이므로 기존파일을 삭제해주심!
|
||||
Else
|
||||
SrcFI.MoveTo(DesFi.FullName) '//실제로 이동한다.
|
||||
Dr.성공 = "O"
|
||||
Dr.오류 = ""
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "MFRM:" + ex.Message.ToString
|
||||
Errcount += 1
|
||||
End Try
|
||||
Application.DoEvents()
|
||||
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
MDiMain.MSG("파일 [이동] 완료" & IIf(Errcount > 0, "(일부파일에 오류가 발생하였습니다", ""))
|
||||
End Sub
|
||||
|
||||
Public Sub MoveFileRCopy(winhide As Boolean)
|
||||
Dim SrcFI As FileInfo = Nothing
|
||||
Dim DesFi As FileInfo = Nothing
|
||||
|
||||
Dim SrcFIp As String '//ft용 160328
|
||||
Dim Err As Boolean = False
|
||||
Dim isFTP As Boolean = False
|
||||
|
||||
If GetWorkDIr.StartsWith("ftp:/") Then isFTP = True
|
||||
|
||||
MDiMain.MSG("파일복사중...")
|
||||
Application.DoEvents()
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.WorkList.Rows.Count - 1
|
||||
|
||||
If MDiMain.DataSet1.WorkList Is Nothing Then
|
||||
If winhide Then
|
||||
MDiMain.Noti("MoveFileRCopy" + vbCrLf + "파일목록이 없습니다")
|
||||
Else
|
||||
MsgBox("작업파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
For Each Dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows
|
||||
index += 1
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
MDiMain.ShowCnt1(index, endcnt, "파일복사")
|
||||
If Dr.오류 <> "" Then
|
||||
Errlog("선오류감지되어서 넘어갑니다(" & Dr.오류 & ")")
|
||||
Else
|
||||
Dim 원본파일명 As String = Dr.원본경로 & "\" & Dr.원본파일명
|
||||
Dim 대상파일명 As String = Dr.대상경로 & "\" & Dr.대상파일명
|
||||
|
||||
If isFTP Then
|
||||
SrcFIp = 원본파일명.Replace("\", "/")
|
||||
SrcFIp = SrcFIp.Replace("//", "/")
|
||||
Else
|
||||
If isFileName(원본파일명) Then
|
||||
SrcFI = New FileInfo(원본파일명)
|
||||
Else
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "원본파일명오류:" + 원본파일명
|
||||
Dr.EndEdit()
|
||||
Continue For
|
||||
End If
|
||||
End If
|
||||
|
||||
If isFileName(대상파일명) Then
|
||||
DesFi = New FileInfo(대상파일명)
|
||||
Else
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "대상파일명오류:" + 대상파일명
|
||||
Dr.EndEdit()
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
'//ftp상태일때는 원본 백업을 하지 않는다.
|
||||
If Not isFTP Then
|
||||
Try
|
||||
Check_Backup(SrcFI, BakTag)
|
||||
Catch ex As Exception
|
||||
PLog.Add(ex.Message, True)
|
||||
If winhide Then
|
||||
MDiMain.Noti("백업정책실패: " + ex.Message)
|
||||
Else
|
||||
MsgBox("백업정책(Check_Backup이 실패했습니다)" & vbCrLf & "Baktag=" & BakTag & vbCrLf & "오류내용:" & ex.Message.ToString, MsgBoxStyle.Information, "메일보내주세요")
|
||||
End If
|
||||
End Try
|
||||
End If
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
Try
|
||||
If Directory.Exists(DesFi.DirectoryName) = False Then
|
||||
Directory.CreateDirectory(DesFi.DirectoryName) '//대상폴더생성
|
||||
End If
|
||||
Catch ex As Exception
|
||||
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "대상폴더생성실패:" + ex.Message
|
||||
Dr.EndEdit()
|
||||
|
||||
Errlog("대상폴더생성실패:" + DesFi.DirectoryName & vbCrLf + ex.Message.ToString)
|
||||
Continue For
|
||||
End Try
|
||||
|
||||
|
||||
If DesFi.Exists Then
|
||||
Dr.성공 = "△"
|
||||
Dr.오류 = "대상파일존재 넘어감"
|
||||
Dr.EndEdit()
|
||||
Else
|
||||
If isFTP Then
|
||||
Dim 재시도횟수 As Integer = 0
|
||||
FTPDOWN:
|
||||
Try
|
||||
FTP_0.Download(SrcFIp, DesFi.FullName, True)
|
||||
If System.IO.File.Exists(DesFi.FullName) Then
|
||||
Dim fi As New System.IO.FileInfo(DesFi.FullName)
|
||||
If fi.Length = 0 Then
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "다운로드실패(0byte)"
|
||||
Dr.EndEdit()
|
||||
Else
|
||||
Dr.성공 = "O"
|
||||
Dr.오류 = ""
|
||||
Dr.EndEdit()
|
||||
Continue For
|
||||
End If
|
||||
Else
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "다운로드실패(대상파일이없음)"
|
||||
Dr.EndEdit()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "다운로드실패(예외:" + ex.Message + ")"
|
||||
Dr.EndEdit()
|
||||
End Try
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
|
||||
If Dr.성공 = "X" Then
|
||||
'//다운로드실패일때는 대상횟수로 연속 다운로드를 한다
|
||||
If 재시도횟수 < MaxRetryCount Then
|
||||
Dr.성공 = "■"
|
||||
Dr.오류 = String.Format("재시도({0}/{1})", 재시도횟수, MaxRetryCount)
|
||||
Dr.EndEdit()
|
||||
재시도횟수 += 1
|
||||
PLog.Add("재실행으로인한 지연시간")
|
||||
MDiMain.Noti(String.Format("FTP Download 오류(재시도:{0}/{1})" + vbCrLf + SrcFIp, 재시도횟수, MaxRetryCount))
|
||||
Form_Status.Refresh()
|
||||
Threading.Thread.Sleep(2000)
|
||||
GoTo FTPDOWN
|
||||
Else
|
||||
'//아무것도 하지않는다 이것은 오류이다.
|
||||
Err = True
|
||||
Continue For
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
|
||||
Try
|
||||
'//일반파일은 기존대로 사용하도록 한다.
|
||||
SrcFI.CopyTo(DesFi.FullName, True)
|
||||
Dr.성공 = "O"
|
||||
Dr.오류 = ""
|
||||
Dr.EndEdit()
|
||||
Catch ex As Exception
|
||||
Err = True
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = "일반파일복사오류:" + ex.Message.ToString()
|
||||
Dr.EndEdit()
|
||||
Continue For
|
||||
End Try
|
||||
|
||||
End If
|
||||
|
||||
Application.DoEvents()
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
MDiMain.MSG("파일 [복사] 완료" & IIf(Err, "(일부파일에 오류가 발생하였습니다", ""))
|
||||
MDiMain.Noti("파일(복사)완료")
|
||||
End Sub
|
||||
|
||||
End Module
|
||||
330
DriveInfo/모듈/Pub.vb
Normal file
@@ -0,0 +1,330 @@
|
||||
Imports System.Data
|
||||
|
||||
Module Pub
|
||||
|
||||
Structure Str_Macro
|
||||
Dim FileName As String
|
||||
Dim Desc As String
|
||||
End Structure
|
||||
|
||||
'//일반변수
|
||||
Public PLog As ArinLog.ArinLog
|
||||
|
||||
Public PathTempDown As String
|
||||
Public PathMacro As String
|
||||
Public PathJob As String
|
||||
Public PathList As String
|
||||
|
||||
Public MacroPattern As String = "fileinfo"
|
||||
Public IniFile As String
|
||||
Public Prev_file As System.IO.FileInfo
|
||||
|
||||
Public MaxRetryCount As Integer = 20 '//ftp 재시도 횟수 (10회 재시도 후 실패시에는 우선 넘어간다)
|
||||
Public RetrySleeptime As Integer = 2000
|
||||
|
||||
'//FTP변수
|
||||
Public FTPServer As String = "127.0.0.1"
|
||||
Public FTPID As String = "anonymous"
|
||||
Public FTPPW As String = ""
|
||||
Public FTPPort As Integer = 21
|
||||
Public FTPPath As String = ""
|
||||
Public FTPPassive As Boolean = False
|
||||
Public FTPUTF8 As Boolean = False
|
||||
|
||||
Public Enum EJobCmdType
|
||||
copy = 0
|
||||
move = 1
|
||||
delete = 2
|
||||
End Enum
|
||||
Public Structure SJobCommand
|
||||
Dim Mode As E_Runtype
|
||||
Dim SrcDir As String
|
||||
Dim SrcFile As String
|
||||
Dim DesDir As String
|
||||
Dim DesFile As String
|
||||
Dim isFTP As Boolean
|
||||
End Structure
|
||||
|
||||
Public Function FileCheckSum(fn As String) As String
|
||||
Dim _md5 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
|
||||
Using stream As System.IO.FileStream = File.OpenRead(fn)
|
||||
Dim checksum() As Byte = _md5.ComputeHash(stream)
|
||||
Return BitConverter.ToString(checksum).Replace("-", String.Empty)
|
||||
End Using
|
||||
Return "CHKERR"
|
||||
End Function
|
||||
|
||||
Public Sub init()
|
||||
|
||||
'//공용로그값
|
||||
PLog = New ArinLog.ArinLog()
|
||||
|
||||
'//공용변수
|
||||
Prev_file = Nothing
|
||||
|
||||
'//기본경로
|
||||
PathMacro = My.Application.Info.DirectoryPath & "\macro\" & MacroPattern
|
||||
PathJob = My.Application.Info.DirectoryPath & "\Job"
|
||||
PathList = My.Application.Info.DirectoryPath & "\List"
|
||||
|
||||
'//작업용폴더확인
|
||||
If Not System.IO.Directory.Exists(PathJob) Then System.IO.Directory.CreateDirectory(PathJob)
|
||||
If Not System.IO.Directory.Exists(PathMacro) Then System.IO.Directory.CreateDirectory(PathMacro)
|
||||
If Not System.IO.Directory.Exists(PathList) Then System.IO.Directory.CreateDirectory(PathList)
|
||||
|
||||
'//파일변수
|
||||
IniFile = My.Application.Info.DirectoryPath & "\macro\" & MacroPattern & "\default.ini"
|
||||
|
||||
End Sub
|
||||
|
||||
'''입력문자열이 파일로 변환되는지?
|
||||
Public Function isFileName(fn As String) As Boolean
|
||||
Try
|
||||
Dim fi As New System.IO.FileInfo(fn)
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function DirCreate(path As String) As Boolean
|
||||
Try
|
||||
System.IO.Directory.CreateDirectory(path)
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
PLog.Add(ArinLog.ArinLog.ETYPE.ERROR, "폴더생성실패(" + path + ") " + ex.Message, True)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
'Public _ParseFormats As String() = { _
|
||||
' "(?<dir>[\-dl])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{4})\s+(?<name>.+)", _
|
||||
' "(?<dir>[\-dl])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{4})\s+(?<name>.+)", _
|
||||
' "(?<dir>[\-dl])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?<name>.+)", _
|
||||
' "(?<dir>[\-dl])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?<name>.+)", _
|
||||
' "(?<dir>[\-dl])(?<permission>([\-r][\-w][\-xs]){3})(\s+)(?<size>(\d+))(\s+)(?<ctbit>(\w+\s\w+))(\s+)(?<size2>(\d+))\s+(?<timestamp>\w+\s+\d+\s+\d{2}:\d{2})\s+(?<name>.+)", _
|
||||
' "(?<timestamp>\d{2}\-\d{2}\-\d{2}\s+\d{2}:\d{2}[Aa|Pp][mM])\s+(?<dir>\<\w+\>){0,1}(?<size>\d+){0,1}\s+(?<name>.+)"}
|
||||
|
||||
'Public Function GetMatchingRegex(ByVal line As String) As System.Text.RegularExpressions.Match
|
||||
' Dim rx As System.Text.RegularExpressions.Regex, m As System.Text.RegularExpressions.Match
|
||||
' For i As Integer = 0 To _ParseFormats.Length - 1
|
||||
' rx = New System.Text.RegularExpressions.Regex(_ParseFormats(i))
|
||||
' m = rx.Match(line)
|
||||
' If m.Success Then Return m
|
||||
' Next
|
||||
' Return Nothing
|
||||
'End Function
|
||||
|
||||
'Public Enum SFtpType
|
||||
' Link = 0
|
||||
' File = 1
|
||||
' Dir = 2
|
||||
'End Enum
|
||||
|
||||
'Public Structure SFTPDetail
|
||||
' Dim FileType As SFtpType
|
||||
' Dim FileName As String
|
||||
' Dim Size As Long
|
||||
' Dim Permission As String
|
||||
' Dim TimeStamp As String
|
||||
'End Structure
|
||||
|
||||
'Public Function FtpDirParser(dirList() As String) As List(Of SFTPDetail)
|
||||
' Dim retval As New List(Of SFTPDetail)
|
||||
' For Each line As String In dirList
|
||||
' Dim m As System.Text.RegularExpressions.Match = GetMatchingRegex(line)
|
||||
' If Not m Is Nothing Then
|
||||
|
||||
' Dim newdr As New SFTPDetail
|
||||
|
||||
' Dim name As String = m.Groups("name").Value
|
||||
' Dim perm As String = m.Groups("poermission").Value
|
||||
' Dim _dir As String = m.Groups("dir").Value
|
||||
' newdr.TimeStamp = m.Groups("timestamp").Value
|
||||
|
||||
' Dim filetype As String = ""
|
||||
' Dim size As Long = 0
|
||||
' If _dir.ToLower = "l" Then
|
||||
' filetype = "LINK"
|
||||
' size = 0
|
||||
' newdr.FileType = SFtpType.Link
|
||||
' ElseIf _dir.ToLower = "d" OrElse _dir.ToLower = "<dir>" Then
|
||||
' filetype = "DIR"
|
||||
' size = 0
|
||||
' newdr.FileType = SFtpType.Dir
|
||||
' Else
|
||||
' filetype = "FILE"
|
||||
' size = Long.Parse(m.Groups("size").Value)
|
||||
' newdr.FileType = SFtpType.File
|
||||
' End If
|
||||
|
||||
' newdr.Permission = perm
|
||||
' newdr.FileName = name
|
||||
|
||||
' newdr.Size = size
|
||||
' retval.Add(newdr)
|
||||
' End If
|
||||
' Next
|
||||
' Return retval
|
||||
'End Function
|
||||
|
||||
Public FTP_0 As FTPClients.Client_2
|
||||
|
||||
Public Enum E_DesDirType
|
||||
desPath = 1 '//대상폴더
|
||||
CustomPath = 2 '//조합에의한 폴더
|
||||
End Enum
|
||||
Public Enum E_baktype
|
||||
none = 0
|
||||
Folder1 = 1
|
||||
CurrnetFolder = 2
|
||||
ParentFolder = 3
|
||||
End Enum
|
||||
Structure S_Log
|
||||
Dim Result As Char
|
||||
Dim OrgFile As String
|
||||
Dim DesFile As String
|
||||
Dim Orgpath As String
|
||||
Dim DesPath As String
|
||||
Dim Msg As String
|
||||
End Structure
|
||||
Enum E_Runtype
|
||||
Copy = 0
|
||||
Delete = 1
|
||||
Move = 2
|
||||
End Enum
|
||||
|
||||
Public Log As ArrayList
|
||||
Public log2 As ArrayList
|
||||
Public Fileok As ArrayList '//성공한 파일목록
|
||||
Public Ep As String
|
||||
Public BakTag As String = "-원본(" & Format(Now, "MMdd") & ")" '& "_MOV_D"
|
||||
|
||||
Public Function GetBakDir1() As String
|
||||
Return MDiMain.tb_bakdir1.Text
|
||||
End Function
|
||||
|
||||
Public Function SaveExcelFile(fn As String, dt As DataTable)
|
||||
Dim fp As New FarPoint.Win.Spread.FpSpread()
|
||||
fp.DataSource = dt
|
||||
Return fp.SaveExcel(fn, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
End Function
|
||||
|
||||
|
||||
Public Function GetBackType1() As E_baktype
|
||||
Select Case MDiMain.cbBakType.SelectedIndex
|
||||
Case 0
|
||||
Return E_baktype.none
|
||||
Case 1
|
||||
Return E_baktype.Folder1
|
||||
Case 2
|
||||
Return E_baktype.CurrnetFolder
|
||||
Case 3
|
||||
Return E_baktype.ParentFolder
|
||||
End Select
|
||||
'If MDiMain.btBakNo.Pressed Then
|
||||
' Return E_baktype.none
|
||||
'ElseIf MDiMain.btBakSrc.Pressed Then
|
||||
' Return E_baktype.CurrnetFolder
|
||||
'ElseIf MDiMain.btBakUpDir.Pressed Then
|
||||
' Return E_baktype.ParentFolder
|
||||
'Else
|
||||
' Return E_baktype.Folder1
|
||||
'End If
|
||||
End Function
|
||||
|
||||
Public Function GetrunType() As E_Runtype
|
||||
If MDiMain.btDel.Pressed Then
|
||||
Return 1
|
||||
ElseIf MDiMain.btMove.Pressed Then
|
||||
Return 2
|
||||
Else
|
||||
Return 0
|
||||
End If
|
||||
End Function
|
||||
Public Function GetWorkDIr() As String
|
||||
Try
|
||||
Return CStr(MDiMain.tb_workdir.Text).Replace("\\", "\").Replace("//", "/")
|
||||
Catch ex As Exception
|
||||
Return "작업폴더에 문제가있습니다"
|
||||
End Try
|
||||
End Function
|
||||
Public Function GetExtendFromMdi() As String
|
||||
Try
|
||||
Return "*." & MDiMain.tb_ext.Text
|
||||
Catch ex As Exception
|
||||
Return "*.*"
|
||||
End Try
|
||||
End Function
|
||||
Public Function GetExtendOnly() As String
|
||||
|
||||
Return MDiMain.tb_ext.Text
|
||||
|
||||
End Function
|
||||
Public Function GetSubDir() As Boolean
|
||||
Try
|
||||
Return MDiMain.chk_subdir.Checked
|
||||
Catch ex As Exception
|
||||
Return True
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function GetSubdirType() As Short
|
||||
If MDiMain.chk_subdir.Checked Then
|
||||
Return 1
|
||||
Else
|
||||
Return 0
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public MyINI As New CommonClassv2.MyINI(My.Application.Info.DirectoryPath & "\main.ini")
|
||||
Public Arin As New CommonClassv2.ARINCLASS
|
||||
|
||||
Public Sub Addlog(ByVal 성공여부 As String, ByVal 원본파일 As String, ByVal 대상파일 As String, ByVal 메세지 As String, Optional ByVal reset As Boolean = False)
|
||||
If reset Then Log = New ArrayList
|
||||
Log.Add(성공여부 & "/" & 원본파일 & "/" & 대상파일 & "/" & 메세지)
|
||||
End Sub
|
||||
|
||||
Public Sub Addlog2(ByVal msg As String, Optional ByVal reset As Boolean = False)
|
||||
If reset Then log2 = New ArrayList
|
||||
log2.Add(">> " & msg)
|
||||
'Frm_log.RichTextBox1.AppendText(">> " & msg)
|
||||
'Frm_log.RichTextBox1.AppendText(vbCrLf)
|
||||
End Sub
|
||||
Public Sub makelog2(ByVal msg As String)
|
||||
Try
|
||||
Form_Status.RichTextBox1.AppendText(msg)
|
||||
Form_Status.RichTextBox1.AppendText(vbCrLf)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub MakeBakLog1()
|
||||
Form_Status.RichTextBox2.Clear()
|
||||
For Each Msg As String In Backupfolder1
|
||||
Form_Status.RichTextBox2.AppendText(Msg)
|
||||
Form_Status.RichTextBox2.AppendText(vbCrLf)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Function getSP() As Integer
|
||||
If String.IsNullOrEmpty(MDiMain.tb_sttrange.Text) Then MDiMain.tb_sttrange.Text = "1"
|
||||
Return MDiMain.tb_sttrange.Text '//목록에서 시작줄번호
|
||||
End Function
|
||||
|
||||
Public Sub Errlog(ByVal amsg As String)
|
||||
Dim Fs As New System.IO.FileStream(My.Application.Info.DirectoryPath & "\error.txt", FileMode.Create)
|
||||
Dim Sw As New System.IO.StreamWriter(Fs, System.Text.Encoding.Default)
|
||||
Sw.WriteLine("시간:" & Now.ToShortDateString & ":" & Now.ToShortTimeString & vbCrLf & amsg)
|
||||
Sw.Close()
|
||||
Sw.Dispose()
|
||||
Fs.Close()
|
||||
Fs.Dispose()
|
||||
End Sub
|
||||
|
||||
|
||||
End Module
|
||||
183
DriveInfo/모듈/mod_Delete.vb
Normal file
@@ -0,0 +1,183 @@
|
||||
Imports System.IO
|
||||
Imports System.Threading
|
||||
Imports System.Data
|
||||
|
||||
Module Mod_Delete
|
||||
'Public Sub DeleteFile()
|
||||
' DeleteFileFromList()
|
||||
'End Sub
|
||||
|
||||
'Public Sub DeleteFileFromList() '//파일목록으로부터 삭제대상폴더의 파일을 삭제한다.
|
||||
' Dim FileList As New ArrayList
|
||||
' Dim FI() As FileInfo
|
||||
' Dim Di As DirectoryInfo
|
||||
|
||||
' If MsgBox("파일삭제작업을 진행하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "삭제확인") <> MsgBoxResult.Ok Then
|
||||
' MsgBox("취소되었습니다", MsgBoxStyle.Information, "확인")
|
||||
' Return
|
||||
' End If
|
||||
|
||||
' '//파일목록을 작성합니다.
|
||||
' MSG("삭제 진행중...")
|
||||
' MDiMain.pbar2.Minimum = 0
|
||||
' MDiMain.pbar2.Maximum = Ep
|
||||
' MDiMain.Refresh()
|
||||
|
||||
' Addlog2("삭제시작 줄번호 범위 " & SP & " ~ " & Ep, True)
|
||||
|
||||
' Dim NullCnt As Short = 0
|
||||
' Dim fn As String
|
||||
|
||||
' For i As Integer = SP To Ep
|
||||
' MDiMain.pbar2.Value = i
|
||||
' If i Mod 10 = 0 Then
|
||||
' MSG("삭제중 (" & i & "/" & Ep & ")")
|
||||
' MDiMain.Refresh()
|
||||
' End If
|
||||
|
||||
' fn = Frm_srcfile.Get_FileList(i + 1) & Mod_Comm.GetExtendFromMdi.Trim("*")
|
||||
' If fn.Trim <> "" Then
|
||||
' NullCnt = 0 '//파일을 삭제하는 루틴을 만든다.
|
||||
' Di = New DirectoryInfo(GetWorkDIr) '//경로선택
|
||||
' FI = Di.GetFiles(fn, GetSubdirType)
|
||||
' If FI.Length < 1 Then
|
||||
' addlog("X", fn, "", "파일없음")
|
||||
' End If
|
||||
|
||||
' For Each F As FileInfo In FI '//일치하는 모든 파일을 삭제한다.
|
||||
' If F.FullName.IndexOf("-원본") = -1 Then '//백업이 만들어놓은 폴더의 파일은 제낀다.
|
||||
' Fileok.Add(F.FullName) '//정상파일목록을 가진다.
|
||||
' addlog("O", F.FullName, "", "삭제")
|
||||
' If Mod_Comm.GetExeType Then ''//모의실행은 백업및 작업을 하지않는다.
|
||||
' '//백업정책을 확인해서 해당 파일을 백업할곳을 결정한다.
|
||||
' Check_Backup(F, BakTag)
|
||||
' F.Delete()
|
||||
' End If
|
||||
' End If
|
||||
' Next
|
||||
' Else
|
||||
' NullCnt += 1
|
||||
' If NullCnt = 5 Then '//빈줄이나올때 널카운트를 증가시키고 빈줄이 5번연속나올때는 빠져나온다.
|
||||
' Exit For
|
||||
' End If
|
||||
' End If
|
||||
' Next
|
||||
' Addlog2("삭제작업이 완료되었습니다")
|
||||
' 'Frm_Wait.Hide()
|
||||
'End Sub
|
||||
Public Sub DeleteFileM(Param As RunParam) '//파일목록으로부터 삭제대상폴더의 파일을 삭제한다.
|
||||
'//파일목록을 작성합니다.
|
||||
MDiMain.MSG("삭제목록 작성중...")
|
||||
|
||||
'//변수목록
|
||||
Dim NR As ireaDataSet.WorkListRow
|
||||
Dim WRow() As ireaDataSet.FileListRow
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.SrcList.Rows.Count - 1
|
||||
|
||||
|
||||
If MDiMain.DataSet1.SrcList Is Nothing Then
|
||||
MsgBox("원본목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
|
||||
For Each drs As ireaDataSet.SrcListRow In MDiMain.DataSet1.SrcList.Rows '//원본목록회전
|
||||
|
||||
If MDiMain.DataSet1.SrcList Is Nothing Then
|
||||
MsgBox("파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
index += 1
|
||||
Application.DoEvents()
|
||||
MDiMain.ShowCnt1(index, endcnt, "목록작성")
|
||||
'//전체목록에서 원본목록 검색
|
||||
WRow = MDiMain.DataSet1.FileList.Select("파일명 like '" & drs.목록명 & "'")
|
||||
If WRow.Length = 0 Then Addlog("X", drs.목록명, "", "파일없음")
|
||||
|
||||
For Each dr As ireaDataSet.FileListRow In WRow '//일치하는 목록들 작업목록에 집어넣는다.
|
||||
NR = MDiMain.DataSet1.WorkList.NewWorkListRow
|
||||
NR.원본경로 = dr.경로
|
||||
NR.원본파일명 = dr.파일명
|
||||
NR.구분 = "삭제"
|
||||
NR.대상경로 = dr.경로
|
||||
NR.대상파일명 = dr.파일명
|
||||
NR.오류 = ""
|
||||
If NR.대상파일명.IndexOf("*") = -1 AndAlso NR.대상파일명.IndexOf("?") = -1 Then
|
||||
Try
|
||||
MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
Catch ex As Exception '//추가오류는 뻔하다이미 그 파일이 있는경우다.
|
||||
NR.오류 = "중복된 삭제대상파일입니다(" & Format(Now, "HHmmss") & ")"
|
||||
MDiMain.DataSet1.WorkList.Rows.Add(NR)
|
||||
makelog2("중복된 삭제대상파일이 생성되었습니다")
|
||||
makelog2(" 파일명 : " & NR.원본경로 & "\" & NR.원본파일명)
|
||||
'If MsgBox("중복된 대상파일이 확인되었습니다" & vbCrLf & vbCrLf & "계속하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
|
||||
' Return
|
||||
'End If
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
MDiMain.MSG("삭제목록 작성완료...")
|
||||
|
||||
'If GetExeType() Then '//실제실행일경우
|
||||
' DeleteFileR()
|
||||
'Else '//모의실행일경우
|
||||
' Addlog2("모의실행 : 실제 복사/이동/삭제는 수행되지 않습니다")
|
||||
' MsgBox("모의실행입니다" & vbCrLf & "실제파일의 복사/이동/삭제 는 수행되지 않습니다", MsgBoxStyle.Information, "확인")
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub DeleteFileR(winhide As Boolean) '//실제로 파일을 삭제합니다. 삭제시 성공여부를 기록합니다
|
||||
Dim FI As FileInfo
|
||||
Dim Err As Boolean = False
|
||||
|
||||
MDiMain.MSG("파일삭제 준비중")
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.WorkList.Rows.Count - 1
|
||||
|
||||
|
||||
If MDiMain.DataSet1.WorkList Is Nothing Then
|
||||
MsgBox("작업파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
For Each Dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows
|
||||
index += 1
|
||||
MDiMain.ShowCnt1(index, endcnt, "파일삭제")
|
||||
Application.DoEvents()
|
||||
|
||||
If Dr.오류 <> "" Then
|
||||
Errlog("선오류감지되어서 넘어갑니다(" & Dr.오류 & ")")
|
||||
Else
|
||||
|
||||
Try
|
||||
FI = New FileInfo(CStr(Dr.원본경로 & "\" & Dr.원본파일명).Replace("\\", "\"))
|
||||
Check_Backup(FI, BakTag)
|
||||
If FI.Exists = False Then Dr.오류 = "파일없음"
|
||||
Try
|
||||
FI.Delete()
|
||||
Dr.성공 = "O"
|
||||
Dr.오류 = ""
|
||||
Catch ex As Exception
|
||||
Err = True
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = ex.Message.ToString()
|
||||
End Try
|
||||
Catch ex As Exception
|
||||
Err = True
|
||||
Dr.성공 = "X"
|
||||
Dr.오류 = ex.Message
|
||||
Errlog("FI = New FileInfo(CStr(Dr.원본경로 &)" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
End If
|
||||
Next
|
||||
MDiMain.MSG("파일 [삭제] 완료" & IIf(Err, "(일부파일에 오류가 발생하였습니다", ""))
|
||||
End Sub
|
||||
|
||||
|
||||
End Module
|
||||
495
DriveInfo/입력폼/Form_Status.Designer.vb
generated
Normal file
@@ -0,0 +1,495 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Form_Status
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Dim DefaultFocusIndicatorRenderer1 As FarPoint.Win.Spread.DefaultFocusIndicatorRenderer = New FarPoint.Win.Spread.DefaultFocusIndicatorRenderer()
|
||||
Dim DefaultScrollBarRenderer1 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim DefaultScrollBarRenderer2 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim TextCellType1 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType2 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType3 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType4 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType5 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType6 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType7 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim DefaultScrollBarRenderer3 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim DefaultScrollBarRenderer4 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim TextCellType8 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim TextCellType9 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Dim DefaultScrollBarRenderer5 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim DefaultScrollBarRenderer6 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
|
||||
Dim TextCellType10 As FarPoint.Win.Spread.CellType.TextCellType = New FarPoint.Win.Spread.CellType.TextCellType()
|
||||
Me.TabControl1 = New System.Windows.Forms.TabControl()
|
||||
Me.TabPage1 = New System.Windows.Forms.TabPage()
|
||||
Me.FpSpread3 = New FarPoint.Win.Spread.FpSpread()
|
||||
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.bt_out_worklist = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripSeparator()
|
||||
Me.bt_makebat = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.FpSpread3_Sheet1 = New FarPoint.Win.Spread.SheetView()
|
||||
Me.IreaDataSet = New FileManager.ireaDataSet()
|
||||
Me.TabPage2 = New System.Windows.Forms.TabPage()
|
||||
Me.FpSpread1 = New FarPoint.Win.Spread.FpSpread()
|
||||
Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.FpSpread1_Sheet1 = New FarPoint.Win.Spread.SheetView()
|
||||
Me.TabPage3 = New System.Windows.Forms.TabPage()
|
||||
Me.FpSpread2 = New FarPoint.Win.Spread.FpSpread()
|
||||
Me.ContextMenuStrip3 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||
Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem()
|
||||
Me.FpSpread2_Sheet1 = New FarPoint.Win.Spread.SheetView()
|
||||
Me.TabPage4 = New System.Windows.Forms.TabPage()
|
||||
Me.RichTextBox2 = New System.Windows.Forms.RichTextBox()
|
||||
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
|
||||
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
|
||||
Me.btRun = New System.Windows.Forms.Button()
|
||||
Me.TabControl1.SuspendLayout()
|
||||
Me.TabPage1.SuspendLayout()
|
||||
CType(Me.FpSpread3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.ContextMenuStrip1.SuspendLayout()
|
||||
CType(Me.FpSpread3_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.IreaDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.TabPage2.SuspendLayout()
|
||||
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.ContextMenuStrip2.SuspendLayout()
|
||||
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.TabPage3.SuspendLayout()
|
||||
CType(Me.FpSpread2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.ContextMenuStrip3.SuspendLayout()
|
||||
CType(Me.FpSpread2_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.TabPage4.SuspendLayout()
|
||||
Me.TableLayoutPanel1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'TabControl1
|
||||
'
|
||||
Me.TabControl1.Controls.Add(Me.TabPage1)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage2)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage3)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage4)
|
||||
Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TabControl1.Location = New System.Drawing.Point(3, 3)
|
||||
Me.TabControl1.Name = "TabControl1"
|
||||
Me.TabControl1.SelectedIndex = 0
|
||||
Me.TabControl1.Size = New System.Drawing.Size(978, 485)
|
||||
Me.TabControl1.TabIndex = 25
|
||||
'
|
||||
'TabPage1
|
||||
'
|
||||
Me.TabPage1.Controls.Add(Me.FpSpread3)
|
||||
Me.TabPage1.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage1.Name = "TabPage1"
|
||||
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage1.Size = New System.Drawing.Size(970, 459)
|
||||
Me.TabPage1.TabIndex = 0
|
||||
Me.TabPage1.Text = "작업대상목록"
|
||||
Me.TabPage1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FpSpread3
|
||||
'
|
||||
Me.FpSpread3.AccessibleDescription = "FpSpread3, Sheet1"
|
||||
Me.FpSpread3.BackColor = System.Drawing.Color.Transparent
|
||||
Me.FpSpread3.ContextMenuStrip = Me.ContextMenuStrip1
|
||||
Me.FpSpread3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.FpSpread3.FocusRenderer = DefaultFocusIndicatorRenderer1
|
||||
Me.FpSpread3.HorizontalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread3.HorizontalScrollBar.Name = ""
|
||||
Me.FpSpread3.HorizontalScrollBar.Renderer = DefaultScrollBarRenderer1
|
||||
Me.FpSpread3.HorizontalScrollBar.TabIndex = 4
|
||||
Me.FpSpread3.Location = New System.Drawing.Point(3, 3)
|
||||
Me.FpSpread3.Name = "FpSpread3"
|
||||
Me.FpSpread3.RightToLeft = System.Windows.Forms.RightToLeft.No
|
||||
Me.FpSpread3.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.FpSpread3_Sheet1})
|
||||
Me.FpSpread3.Size = New System.Drawing.Size(964, 453)
|
||||
Me.FpSpread3.Skin = FarPoint.Win.Spread.DefaultSpreadSkins.Classic
|
||||
Me.FpSpread3.TabIndex = 22
|
||||
Me.FpSpread3.VerticalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread3.VerticalScrollBar.Name = ""
|
||||
Me.FpSpread3.VerticalScrollBar.Renderer = DefaultScrollBarRenderer2
|
||||
Me.FpSpread3.VerticalScrollBar.TabIndex = 5
|
||||
Me.FpSpread3.VisualStyles = FarPoint.Win.VisualStyles.Off
|
||||
Me.FpSpread3.SetActiveViewport(0, -1, -1)
|
||||
'
|
||||
'ContextMenuStrip1
|
||||
'
|
||||
Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_out_worklist, Me.ToolStripMenuItem3, Me.bt_makebat})
|
||||
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
|
||||
Me.ContextMenuStrip1.Size = New System.Drawing.Size(151, 54)
|
||||
'
|
||||
'bt_out_worklist
|
||||
'
|
||||
Me.bt_out_worklist.Name = "bt_out_worklist"
|
||||
Me.bt_out_worklist.Size = New System.Drawing.Size(150, 22)
|
||||
Me.bt_out_worklist.Text = "내보내기"
|
||||
'
|
||||
'ToolStripMenuItem3
|
||||
'
|
||||
Me.ToolStripMenuItem3.Name = "ToolStripMenuItem3"
|
||||
Me.ToolStripMenuItem3.Size = New System.Drawing.Size(147, 6)
|
||||
'
|
||||
'bt_makebat
|
||||
'
|
||||
Me.bt_makebat.Name = "bt_makebat"
|
||||
Me.bt_makebat.Size = New System.Drawing.Size(150, 22)
|
||||
Me.bt_makebat.Text = "배치파일 작성"
|
||||
'
|
||||
'FpSpread3_Sheet1
|
||||
'
|
||||
Me.FpSpread3_Sheet1.Reset()
|
||||
Me.FpSpread3_Sheet1.SheetName = "Sheet1"
|
||||
'Formulas and custom names must be loaded with R1C1 reference style
|
||||
Me.FpSpread3_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
|
||||
FpSpread3_Sheet1.ColumnCount = 7
|
||||
Me.FpSpread3_Sheet1.ActiveColumnIndex = -1
|
||||
Me.FpSpread3_Sheet1.ActiveRowIndex = -1
|
||||
Me.FpSpread3_Sheet1.AutoGenerateColumns = False
|
||||
Me.FpSpread3_Sheet1.ColumnFooter.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.ColumnFooter.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread3_Sheet1.ColumnFooterSheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.ColumnFooterSheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread3_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "원본파일명"
|
||||
Me.FpSpread3_Sheet1.ColumnHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.ColumnHeader.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread3_Sheet1.ColumnHeader.Rows.Get(0).Height = 38.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(0).CellType = TextCellType1
|
||||
Me.FpSpread3_Sheet1.Columns.Get(0).DataField = "원본파일명"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(0).Width = 151.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(1).CellType = TextCellType2
|
||||
Me.FpSpread3_Sheet1.Columns.Get(1).DataField = "대상파일명"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(1).Width = 151.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(2).CellType = TextCellType3
|
||||
Me.FpSpread3_Sheet1.Columns.Get(2).DataField = "원본경로"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(2).Width = 151.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(3).CellType = TextCellType4
|
||||
Me.FpSpread3_Sheet1.Columns.Get(3).DataField = "대상경로"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(3).Width = 185.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(4).CellType = TextCellType5
|
||||
Me.FpSpread3_Sheet1.Columns.Get(4).DataField = "구분"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(4).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center
|
||||
Me.FpSpread3_Sheet1.Columns.Get(4).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center
|
||||
Me.FpSpread3_Sheet1.Columns.Get(4).Width = 50.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(5).CellType = TextCellType6
|
||||
Me.FpSpread3_Sheet1.Columns.Get(5).DataField = "성공"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(5).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center
|
||||
Me.FpSpread3_Sheet1.Columns.Get(5).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center
|
||||
Me.FpSpread3_Sheet1.Columns.Get(5).Width = 39.0!
|
||||
Me.FpSpread3_Sheet1.Columns.Get(6).AllowAutoSort = True
|
||||
Me.FpSpread3_Sheet1.Columns.Get(6).CellType = TextCellType7
|
||||
Me.FpSpread3_Sheet1.Columns.Get(6).DataField = "오류"
|
||||
Me.FpSpread3_Sheet1.Columns.Get(6).ForeColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.Columns.Get(6).Width = 145.0!
|
||||
Me.FpSpread3_Sheet1.DataAutoCellTypes = False
|
||||
Me.FpSpread3_Sheet1.DataAutoSizeColumns = False
|
||||
Me.FpSpread3_Sheet1.DataMember = "WorkList"
|
||||
Me.FpSpread3_Sheet1.DataSource = Me.IreaDataSet
|
||||
Me.FpSpread3_Sheet1.RowHeader.Columns.Default.Resizable = False
|
||||
Me.FpSpread3_Sheet1.RowHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.RowHeader.DefaultStyle.Parent = "RowHeaderDefault"
|
||||
Me.FpSpread3_Sheet1.SheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread3_Sheet1.SheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread3_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1
|
||||
'
|
||||
'IreaDataSet
|
||||
'
|
||||
Me.IreaDataSet.DataSetName = "ireaDataSet"
|
||||
Me.IreaDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
|
||||
'
|
||||
'TabPage2
|
||||
'
|
||||
Me.TabPage2.Controls.Add(Me.FpSpread1)
|
||||
Me.TabPage2.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage2.Name = "TabPage2"
|
||||
Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage2.Size = New System.Drawing.Size(970, 459)
|
||||
Me.TabPage2.TabIndex = 1
|
||||
Me.TabPage2.Text = "파일목록"
|
||||
Me.TabPage2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FpSpread1
|
||||
'
|
||||
Me.FpSpread1.AccessibleDescription = "FpSpread1, Sheet1, Row 0, Column 0, "
|
||||
Me.FpSpread1.BackColor = System.Drawing.Color.Transparent
|
||||
Me.FpSpread1.ContextMenuStrip = Me.ContextMenuStrip2
|
||||
Me.FpSpread1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.FpSpread1.FocusRenderer = DefaultFocusIndicatorRenderer1
|
||||
Me.FpSpread1.HorizontalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread1.HorizontalScrollBar.Name = ""
|
||||
Me.FpSpread1.HorizontalScrollBar.Renderer = DefaultScrollBarRenderer3
|
||||
Me.FpSpread1.HorizontalScrollBar.TabIndex = 4
|
||||
Me.FpSpread1.Location = New System.Drawing.Point(3, 3)
|
||||
Me.FpSpread1.Name = "FpSpread1"
|
||||
Me.FpSpread1.RightToLeft = System.Windows.Forms.RightToLeft.No
|
||||
Me.FpSpread1.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.FpSpread1_Sheet1})
|
||||
Me.FpSpread1.Size = New System.Drawing.Size(964, 453)
|
||||
Me.FpSpread1.Skin = FarPoint.Win.Spread.DefaultSpreadSkins.Classic
|
||||
Me.FpSpread1.TabIndex = 20
|
||||
Me.FpSpread1.VerticalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread1.VerticalScrollBar.Name = ""
|
||||
Me.FpSpread1.VerticalScrollBar.Renderer = DefaultScrollBarRenderer4
|
||||
Me.FpSpread1.VerticalScrollBar.TabIndex = 5
|
||||
Me.FpSpread1.VisualStyles = FarPoint.Win.VisualStyles.Off
|
||||
Me.FpSpread1.SetActiveViewport(0, -1, -1)
|
||||
'
|
||||
'ContextMenuStrip2
|
||||
'
|
||||
Me.ContextMenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem1})
|
||||
Me.ContextMenuStrip2.Name = "ContextMenuStrip1"
|
||||
Me.ContextMenuStrip2.Size = New System.Drawing.Size(123, 26)
|
||||
'
|
||||
'ToolStripMenuItem1
|
||||
'
|
||||
Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1"
|
||||
Me.ToolStripMenuItem1.Size = New System.Drawing.Size(122, 22)
|
||||
Me.ToolStripMenuItem1.Text = "내보내기"
|
||||
'
|
||||
'FpSpread1_Sheet1
|
||||
'
|
||||
Me.FpSpread1_Sheet1.Reset()
|
||||
Me.FpSpread1_Sheet1.SheetName = "Sheet1"
|
||||
'Formulas and custom names must be loaded with R1C1 reference style
|
||||
Me.FpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
|
||||
FpSpread1_Sheet1.ColumnCount = 2
|
||||
Me.FpSpread1_Sheet1.ActiveColumnIndex = -1
|
||||
Me.FpSpread1_Sheet1.ActiveRowIndex = -1
|
||||
Me.FpSpread1_Sheet1.ColumnFooter.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread1_Sheet1.ColumnFooter.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread1_Sheet1.ColumnFooterSheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread1_Sheet1.ColumnFooterSheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "경로"
|
||||
Me.FpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 1).Value = "파일명"
|
||||
Me.FpSpread1_Sheet1.ColumnHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread1_Sheet1.ColumnHeader.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 41.0!
|
||||
Me.FpSpread1_Sheet1.Columns.Get(0).CellType = TextCellType8
|
||||
Me.FpSpread1_Sheet1.Columns.Get(0).DataField = "경로"
|
||||
Me.FpSpread1_Sheet1.Columns.Get(0).Label = "경로"
|
||||
Me.FpSpread1_Sheet1.Columns.Get(0).Width = 210.0!
|
||||
Me.FpSpread1_Sheet1.Columns.Get(1).CellType = TextCellType9
|
||||
Me.FpSpread1_Sheet1.Columns.Get(1).DataField = "파일명"
|
||||
Me.FpSpread1_Sheet1.Columns.Get(1).Label = "파일명"
|
||||
Me.FpSpread1_Sheet1.Columns.Get(1).Width = 210.0!
|
||||
Me.FpSpread1_Sheet1.DataAutoCellTypes = False
|
||||
Me.FpSpread1_Sheet1.DataAutoHeadings = False
|
||||
Me.FpSpread1_Sheet1.DataAutoSizeColumns = False
|
||||
Me.FpSpread1_Sheet1.DataMember = "FileList"
|
||||
Me.FpSpread1_Sheet1.DataSource = Me.IreaDataSet
|
||||
Me.FpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = False
|
||||
Me.FpSpread1_Sheet1.RowHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread1_Sheet1.RowHeader.DefaultStyle.Parent = "RowHeaderDefault"
|
||||
Me.FpSpread1_Sheet1.SheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread1_Sheet1.SheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1
|
||||
'
|
||||
'TabPage3
|
||||
'
|
||||
Me.TabPage3.Controls.Add(Me.FpSpread2)
|
||||
Me.TabPage3.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage3.Name = "TabPage3"
|
||||
Me.TabPage3.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage3.Size = New System.Drawing.Size(970, 459)
|
||||
Me.TabPage3.TabIndex = 2
|
||||
Me.TabPage3.Text = "원본목록"
|
||||
Me.TabPage3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FpSpread2
|
||||
'
|
||||
Me.FpSpread2.AccessibleDescription = "FpSpread2, Sheet1, Row 0, Column 0, "
|
||||
Me.FpSpread2.BackColor = System.Drawing.Color.Transparent
|
||||
Me.FpSpread2.ContextMenuStrip = Me.ContextMenuStrip3
|
||||
Me.FpSpread2.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.FpSpread2.FocusRenderer = DefaultFocusIndicatorRenderer1
|
||||
Me.FpSpread2.HorizontalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread2.HorizontalScrollBar.Name = ""
|
||||
Me.FpSpread2.HorizontalScrollBar.Renderer = DefaultScrollBarRenderer5
|
||||
Me.FpSpread2.HorizontalScrollBar.TabIndex = 2
|
||||
Me.FpSpread2.Location = New System.Drawing.Point(3, 3)
|
||||
Me.FpSpread2.Name = "FpSpread2"
|
||||
Me.FpSpread2.RightToLeft = System.Windows.Forms.RightToLeft.No
|
||||
Me.FpSpread2.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.FpSpread2_Sheet1})
|
||||
Me.FpSpread2.Size = New System.Drawing.Size(964, 453)
|
||||
Me.FpSpread2.Skin = FarPoint.Win.Spread.DefaultSpreadSkins.Classic
|
||||
Me.FpSpread2.TabIndex = 21
|
||||
Me.FpSpread2.VerticalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
|
||||
Me.FpSpread2.VerticalScrollBar.Name = ""
|
||||
Me.FpSpread2.VerticalScrollBar.Renderer = DefaultScrollBarRenderer6
|
||||
Me.FpSpread2.VerticalScrollBar.TabIndex = 3
|
||||
Me.FpSpread2.VisualStyles = FarPoint.Win.VisualStyles.Off
|
||||
Me.FpSpread2.SetActiveViewport(0, -1, -1)
|
||||
'
|
||||
'ContextMenuStrip3
|
||||
'
|
||||
Me.ContextMenuStrip3.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem2})
|
||||
Me.ContextMenuStrip3.Name = "ContextMenuStrip1"
|
||||
Me.ContextMenuStrip3.Size = New System.Drawing.Size(123, 26)
|
||||
'
|
||||
'ToolStripMenuItem2
|
||||
'
|
||||
Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2"
|
||||
Me.ToolStripMenuItem2.Size = New System.Drawing.Size(122, 22)
|
||||
Me.ToolStripMenuItem2.Text = "내보내기"
|
||||
'
|
||||
'FpSpread2_Sheet1
|
||||
'
|
||||
Me.FpSpread2_Sheet1.Reset()
|
||||
Me.FpSpread2_Sheet1.SheetName = "Sheet1"
|
||||
'Formulas and custom names must be loaded with R1C1 reference style
|
||||
Me.FpSpread2_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
|
||||
FpSpread2_Sheet1.ColumnCount = 1
|
||||
Me.FpSpread2_Sheet1.ActiveColumnIndex = -1
|
||||
Me.FpSpread2_Sheet1.ActiveRowIndex = -1
|
||||
Me.FpSpread2_Sheet1.ColumnFooter.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread2_Sheet1.ColumnFooter.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread2_Sheet1.ColumnFooterSheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread2_Sheet1.ColumnFooterSheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread2_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "목록"
|
||||
Me.FpSpread2_Sheet1.ColumnHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread2_Sheet1.ColumnHeader.DefaultStyle.Parent = "HeaderDefault"
|
||||
Me.FpSpread2_Sheet1.ColumnHeader.Rows.Get(0).Height = 46.0!
|
||||
Me.FpSpread2_Sheet1.Columns.Get(0).CellType = TextCellType10
|
||||
Me.FpSpread2_Sheet1.Columns.Get(0).DataField = "목록명"
|
||||
Me.FpSpread2_Sheet1.Columns.Get(0).Label = "목록"
|
||||
Me.FpSpread2_Sheet1.Columns.Get(0).Width = 271.0!
|
||||
Me.FpSpread2_Sheet1.DataAutoCellTypes = False
|
||||
Me.FpSpread2_Sheet1.DataAutoHeadings = False
|
||||
Me.FpSpread2_Sheet1.DataAutoSizeColumns = False
|
||||
Me.FpSpread2_Sheet1.DataMember = "SrcList"
|
||||
Me.FpSpread2_Sheet1.DataSource = Me.IreaDataSet
|
||||
Me.FpSpread2_Sheet1.RowHeader.Columns.Default.Resizable = False
|
||||
Me.FpSpread2_Sheet1.RowHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread2_Sheet1.RowHeader.DefaultStyle.Parent = "RowHeaderDefault"
|
||||
Me.FpSpread2_Sheet1.SheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
|
||||
Me.FpSpread2_Sheet1.SheetCornerStyle.Parent = "CornerDefault"
|
||||
Me.FpSpread2_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1
|
||||
'
|
||||
'TabPage4
|
||||
'
|
||||
Me.TabPage4.Controls.Add(Me.RichTextBox2)
|
||||
Me.TabPage4.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage4.Name = "TabPage4"
|
||||
Me.TabPage4.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage4.Size = New System.Drawing.Size(970, 459)
|
||||
Me.TabPage4.TabIndex = 3
|
||||
Me.TabPage4.Text = "백업폴더내역"
|
||||
Me.TabPage4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RichTextBox2
|
||||
'
|
||||
Me.RichTextBox2.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.RichTextBox2.Location = New System.Drawing.Point(3, 3)
|
||||
Me.RichTextBox2.Name = "RichTextBox2"
|
||||
Me.RichTextBox2.Size = New System.Drawing.Size(964, 453)
|
||||
Me.RichTextBox2.TabIndex = 27
|
||||
Me.RichTextBox2.Text = ""
|
||||
'
|
||||
'TableLayoutPanel1
|
||||
'
|
||||
Me.TableLayoutPanel1.ColumnCount = 1
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.TabControl1, 0, 0)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.RichTextBox1, 0, 1)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.btRun, 0, 2)
|
||||
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
|
||||
Me.TableLayoutPanel1.RowCount = 3
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 128.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 43.0!))
|
||||
Me.TableLayoutPanel1.Size = New System.Drawing.Size(984, 662)
|
||||
Me.TableLayoutPanel1.TabIndex = 26
|
||||
'
|
||||
'RichTextBox1
|
||||
'
|
||||
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.RichTextBox1.Location = New System.Drawing.Point(3, 494)
|
||||
Me.RichTextBox1.Name = "RichTextBox1"
|
||||
Me.RichTextBox1.Size = New System.Drawing.Size(978, 122)
|
||||
Me.RichTextBox1.TabIndex = 26
|
||||
Me.RichTextBox1.Text = ""
|
||||
'
|
||||
'btRun
|
||||
'
|
||||
Me.btRun.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.btRun.Font = New System.Drawing.Font("굴림", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.btRun.Location = New System.Drawing.Point(3, 622)
|
||||
Me.btRun.Name = "btRun"
|
||||
Me.btRun.Size = New System.Drawing.Size(978, 37)
|
||||
Me.btRun.TabIndex = 27
|
||||
Me.btRun.Text = "실 행"
|
||||
Me.btRun.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Form_Status
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(984, 662)
|
||||
Me.Controls.Add(Me.TableLayoutPanel1)
|
||||
Me.Name = "Form_Status"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "상태창(데이터수집)"
|
||||
Me.TopMost = True
|
||||
Me.TabControl1.ResumeLayout(False)
|
||||
Me.TabPage1.ResumeLayout(False)
|
||||
CType(Me.FpSpread3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ContextMenuStrip1.ResumeLayout(False)
|
||||
CType(Me.FpSpread3_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.IreaDataSet, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.TabPage2.ResumeLayout(False)
|
||||
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ContextMenuStrip2.ResumeLayout(False)
|
||||
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.TabPage3.ResumeLayout(False)
|
||||
CType(Me.FpSpread2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ContextMenuStrip3.ResumeLayout(False)
|
||||
CType(Me.FpSpread2_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.TabPage4.ResumeLayout(False)
|
||||
Me.TableLayoutPanel1.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
|
||||
Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents FpSpread3 As FarPoint.Win.Spread.FpSpread
|
||||
Friend WithEvents FpSpread3_Sheet1 As FarPoint.Win.Spread.SheetView
|
||||
Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents FpSpread1 As FarPoint.Win.Spread.FpSpread
|
||||
Friend WithEvents FpSpread1_Sheet1 As FarPoint.Win.Spread.SheetView
|
||||
Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents FpSpread2 As FarPoint.Win.Spread.FpSpread
|
||||
Friend WithEvents FpSpread2_Sheet1 As FarPoint.Win.Spread.SheetView
|
||||
Friend WithEvents IreaDataSet As FileManager.ireaDataSet
|
||||
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
|
||||
Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
|
||||
Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents RichTextBox2 As System.Windows.Forms.RichTextBox
|
||||
Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip
|
||||
Friend WithEvents bt_out_worklist As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents ContextMenuStrip2 As System.Windows.Forms.ContextMenuStrip
|
||||
Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents ContextMenuStrip3 As System.Windows.Forms.ContextMenuStrip
|
||||
Friend WithEvents ToolStripMenuItem2 As System.Windows.Forms.ToolStripMenuItem
|
||||
Friend WithEvents btRun As System.Windows.Forms.Button
|
||||
Friend WithEvents ToolStripMenuItem3 As System.Windows.Forms.ToolStripSeparator
|
||||
Friend WithEvents bt_makebat As System.Windows.Forms.ToolStripMenuItem
|
||||
End Class
|
||||
144
DriveInfo/입력폼/Form_Status.resx
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>611, 14</value>
|
||||
</metadata>
|
||||
<metadata name="FpSpread3_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>33, 14</value>
|
||||
</metadata>
|
||||
<metadata name="IreaDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>495, 14</value>
|
||||
</metadata>
|
||||
<metadata name="ContextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>771, 14</value>
|
||||
</metadata>
|
||||
<metadata name="FpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>187, 14</value>
|
||||
</metadata>
|
||||
<metadata name="ContextMenuStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>931, 14</value>
|
||||
</metadata>
|
||||
<metadata name="FpSpread2_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>341, 14</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>56</value>
|
||||
</metadata>
|
||||
</root>
|
||||
195
DriveInfo/입력폼/Form_Status.vb
Normal file
@@ -0,0 +1,195 @@
|
||||
Public Class Form_Status
|
||||
|
||||
Enum E_SaveType
|
||||
WorkList = 0
|
||||
FileList = 1
|
||||
SrcList = 2
|
||||
End Enum
|
||||
|
||||
Public AutoRun As Boolean = False
|
||||
Public Winhide As Boolean = False
|
||||
|
||||
'//뷰의 내용을 파일로 저장한다.
|
||||
Public Sub SaveList(ByVal Div As E_SaveType, ByVal UseOD As Boolean)
|
||||
Dim NowString As String = Format(Now, "yyMMddHHmm")
|
||||
Dim Filename As String = ""
|
||||
Select Case Div
|
||||
Case E_SaveType.FileList
|
||||
Filename = "전체파일목록"
|
||||
Case E_SaveType.SrcList
|
||||
Filename = "원본목록"
|
||||
Case E_SaveType.WorkList
|
||||
Filename = "작업파일목록"
|
||||
End Select
|
||||
Filename = Filename & NowString & ".xls"
|
||||
|
||||
If UseOD Then
|
||||
Dim OD As New SaveFileDialog
|
||||
OD.InitialDirectory = My.Application.Info.DirectoryPath
|
||||
OD.FileName = Filename
|
||||
OD.Filter = "엑셀워크시트(*xls)|*.xls"
|
||||
If OD.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
||||
Select Case Div
|
||||
Case E_SaveType.WorkList
|
||||
PLog.Add("Save Work List : " + OD.FileName)
|
||||
Me.FpSpread3.SaveExcel(OD.FileName, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
Case E_SaveType.FileList
|
||||
PLog.Add("Save File List : " + OD.FileName)
|
||||
Me.FpSpread1.SaveExcel(OD.FileName, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
Case E_SaveType.SrcList
|
||||
PLog.Add("Save Source List : " + OD.FileName)
|
||||
Me.FpSpread2.SaveExcel(OD.FileName, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
End Select
|
||||
MsgBox("목록이 저장되었습니다" & vbCrLf & OD.FileName, MsgBoxStyle.Critical, "화인")
|
||||
End If
|
||||
Else
|
||||
Filename = PathList & "\" & Filename
|
||||
Select Case Div
|
||||
Case E_SaveType.WorkList
|
||||
PLog.Add("Save Work List : " + Filename)
|
||||
Me.FpSpread3.SaveExcel(Filename, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
Case E_SaveType.FileList
|
||||
PLog.Add("Save File List : " + Filename)
|
||||
Me.FpSpread1.SaveExcel(Filename, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
Case E_SaveType.SrcList
|
||||
PLog.Add("Save Source List : " + Filename)
|
||||
Me.FpSpread2.SaveExcel(Filename, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
|
||||
End Select
|
||||
'MsgBox("목록이 저장되었습니다" & vbCrLf & Filename, MsgBoxStyle.Critical, "화인")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub bt_out_worklist_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_out_worklist.Click
|
||||
Me.SaveList(E_SaveType.WorkList, True)
|
||||
End Sub
|
||||
|
||||
Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
|
||||
Me.SaveList(E_SaveType.FileList, True)
|
||||
End Sub
|
||||
|
||||
Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
|
||||
Me.SaveList(E_SaveType.SrcList, True)
|
||||
End Sub
|
||||
|
||||
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btRun.Click
|
||||
|
||||
If Me.FpSpread3_Sheet1.RowCount <= 0 Then
|
||||
If Winhide Then
|
||||
MDiMain.Noti("작업목록이 없으므로 실행할 수 없습니다")
|
||||
Else
|
||||
MsgBox("작업목록이 존재하지 않습니다", MsgBoxStyle.Critical, "확인")
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
' MsgBox("1")
|
||||
If Not AutoRun Then
|
||||
If MsgBox("[복사/이동/삭제] 실행하시겠습니까?" + vbCrLf + "FTP의경우 백업정책이 적용되지 않습니다", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "실행확인") <> MsgBoxResult.Ok Then Return
|
||||
End If
|
||||
|
||||
Me.btRun.Enabled = False
|
||||
MDiMain.Timer1.Enabled = False
|
||||
' MsgBox("2")
|
||||
If GetrunType() = E_Runtype.Copy Then
|
||||
Try
|
||||
MoveFileRCopy(Winhide)
|
||||
Catch ex As Exception
|
||||
Errlog("MoveFileRCopy" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
ElseIf GetrunType() = E_Runtype.Move Then
|
||||
Try
|
||||
MoveFileRMove(Winhide)
|
||||
Catch ex As Exception
|
||||
Errlog("MoveFileRMove" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
Else
|
||||
Try
|
||||
DeleteFileR(Winhide)
|
||||
Catch ex As Exception
|
||||
Errlog("DeleteFileR" & ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
End If
|
||||
Try
|
||||
MakeBakLog1()
|
||||
Catch ex As Exception
|
||||
Errlog("MakeBakLog1" & ex.Message.ToString)
|
||||
End Try
|
||||
Application.DoEvents()
|
||||
|
||||
MDiMain.Timer1.Enabled = True
|
||||
If Winhide Then
|
||||
MDiMain.Noti("완료되었습니다")
|
||||
' Me.Close()
|
||||
Else
|
||||
MsgBox("완료되었습니다", MsgBoxStyle.Information, "확인")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub bt_makebat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_makebat.Click
|
||||
Dim FN As String = ""
|
||||
Dim Scr As String = ""
|
||||
Select Case GetrunType()
|
||||
Case E_Runtype.Copy
|
||||
FN = "복사("
|
||||
Scr = "copy /y "
|
||||
Case E_Runtype.Move
|
||||
FN = "이동("
|
||||
Scr = "move /y "
|
||||
Case E_Runtype.Delete
|
||||
FN = "삭제("
|
||||
Scr = "del /f /q "
|
||||
End Select
|
||||
FN = "c:\" & FN & Format(Now, "yyyyMMdd") & ").bat"
|
||||
Dim Fs As New FileStream(FN, FileMode.Create)
|
||||
Dim Sw As New StreamWriter(Fs, System.Text.Encoding.Default)
|
||||
|
||||
MDiMain.MSG("스크립트생성중")
|
||||
Dim index As Integer = 0
|
||||
Dim endcnt As Integer = MDiMain.DataSet1.WorkList.Rows.Count - 1
|
||||
|
||||
Sw.WriteLine("@echo off")
|
||||
For Each Dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows
|
||||
index += 1
|
||||
MDiMain.ShowCnt1(index, endcnt, "스크립트생성")
|
||||
Sw.WriteLine("echo " & index & "/" & MDiMain.DataSet1.WorkList.Rows.Count)
|
||||
Select Case GetrunType()
|
||||
Case E_Runtype.Delete
|
||||
Sw.WriteLine("del /f /q " & Chr(&H22) & Dr.원본경로 & "\" & Dr.원본파일명 & Chr(&H22))
|
||||
Case E_Runtype.Copy
|
||||
Sw.WriteLine("copy /y " & Dr.원본경로 & "\" & Dr.원본파일명 & Space(1) & Dr.대상경로 & "\" & Dr.대상파일명)
|
||||
Case E_Runtype.Move
|
||||
Sw.WriteLine("move /y " & Dr.원본경로 & "\" & Dr.원본파일명 & Space(1) & Dr.대상경로 & "\" & Dr.대상파일명)
|
||||
End Select
|
||||
Next
|
||||
Sw.Flush()
|
||||
Sw.Close()
|
||||
Fs.Close()
|
||||
Sw = Nothing
|
||||
Fs = Nothing
|
||||
MDiMain.MSG("스크립트생성완료")
|
||||
MsgBox("배치파일이 생성되엇습니다" & vbCrLf & "파일명 : " & FN, MsgBoxStyle.Information, "확인")
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Status_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
|
||||
RefreshCount
|
||||
End Sub
|
||||
|
||||
Private Sub RefreshCount()
|
||||
Me.TabPage1.Text = "작업대상목록(" & Me.FpSpread3_Sheet1.RowCount & ")"
|
||||
Me.TabPage2.Text = "파일목록(" & Me.FpSpread1_Sheet1.RowCount & ")"
|
||||
Me.TabPage3.Text = "원본목록(" & Me.FpSpread2_Sheet1.RowCount & ")"
|
||||
End Sub
|
||||
|
||||
Private Sub Form_Status_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
||||
Me.FpSpread1.DataSource = MDiMain.DataSet1.FileList
|
||||
Me.FpSpread2.DataSource = MDiMain.DataSet1.SrcList
|
||||
Me.FpSpread3.DataSource = MDiMain.DataSet1.WorkList
|
||||
RefreshCount()
|
||||
|
||||
If Winhide AndAlso WindowState <> FormWindowState.Minimized Then Me.WindowState = FormWindowState.Minimized
|
||||
End Sub
|
||||
End Class
|
||||
264
DriveInfo/입력폼/Frm_DeleteFile.Designer.vb
generated
Normal file
@@ -0,0 +1,264 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Frm_DeleteFile
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container
|
||||
Dim TipAppearance4 As FarPoint.Win.Spread.TipAppearance = New FarPoint.Win.Spread.TipAppearance
|
||||
Me.FB = New System.Windows.Forms.FolderBrowserDialog
|
||||
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip
|
||||
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip
|
||||
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton
|
||||
Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel
|
||||
Me.FpSpread1 = New FarPoint.Win.Spread.FpSpread
|
||||
Me.FpSpread1_Sheet1 = New FarPoint.Win.Spread.SheetView
|
||||
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
|
||||
Me.tb_deldesc = New System.Windows.Forms.TextBox
|
||||
Me.TabControl1 = New System.Windows.Forms.TabControl
|
||||
Me.TabPage1 = New System.Windows.Forms.TabPage
|
||||
Me.tb_deltext1 = New System.Windows.Forms.TextBox
|
||||
Me.tb_deltext2 = New System.Windows.Forms.TextBox
|
||||
Me.RadioButton2 = New System.Windows.Forms.RadioButton
|
||||
Me.RadioButton1 = New System.Windows.Forms.RadioButton
|
||||
Me.TabPage2 = New System.Windows.Forms.TabPage
|
||||
Me.desc_timer = New System.Windows.Forms.Timer(Me.components)
|
||||
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
|
||||
Me.ToolStrip1.SuspendLayout()
|
||||
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.TableLayoutPanel1.SuspendLayout()
|
||||
Me.TabControl1.SuspendLayout()
|
||||
Me.TabPage1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'StatusStrip1
|
||||
'
|
||||
Me.StatusStrip1.Location = New System.Drawing.Point(0, 544)
|
||||
Me.StatusStrip1.Name = "StatusStrip1"
|
||||
Me.StatusStrip1.Size = New System.Drawing.Size(982, 22)
|
||||
Me.StatusStrip1.TabIndex = 2
|
||||
Me.StatusStrip1.Text = "StatusStrip1"
|
||||
'
|
||||
'ToolStrip1
|
||||
'
|
||||
Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32)
|
||||
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton1, Me.ToolStripLabel1})
|
||||
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.ToolStrip1.Name = "ToolStrip1"
|
||||
Me.ToolStrip1.Size = New System.Drawing.Size(982, 39)
|
||||
Me.ToolStrip1.TabIndex = 3
|
||||
Me.ToolStrip1.Text = "ToolStrip1"
|
||||
'
|
||||
'ToolStripButton1
|
||||
'
|
||||
Me.ToolStripButton1.Font = New System.Drawing.Font("맑은 고딕", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.ToolStripButton1.Image = Global.FileManager.My.Resources.Resources.play_32
|
||||
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||
Me.ToolStripButton1.Name = "ToolStripButton1"
|
||||
Me.ToolStripButton1.Size = New System.Drawing.Size(67, 36)
|
||||
Me.ToolStripButton1.Text = "실행"
|
||||
Me.ToolStripButton1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ToolStripLabel1
|
||||
'
|
||||
Me.ToolStripLabel1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
|
||||
Me.ToolStripLabel1.Name = "ToolStripLabel1"
|
||||
Me.ToolStripLabel1.Size = New System.Drawing.Size(205, 36)
|
||||
Me.ToolStripLabel1.Text = "→ 파일을 삭제할 방법을 선택하세요."
|
||||
'
|
||||
'FpSpread1
|
||||
'
|
||||
Me.FpSpread1.About = "3.0.2003.2005"
|
||||
Me.FpSpread1.AccessibleDescription = ""
|
||||
Me.FpSpread1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.FpSpread1.Font = New System.Drawing.Font("맑은 고딕", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.FpSpread1.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded
|
||||
Me.FpSpread1.Location = New System.Drawing.Point(3, 350)
|
||||
Me.FpSpread1.Name = "FpSpread1"
|
||||
Me.FpSpread1.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.FpSpread1_Sheet1})
|
||||
Me.FpSpread1.Size = New System.Drawing.Size(976, 154)
|
||||
Me.FpSpread1.TabIndex = 4
|
||||
TipAppearance4.BackColor = System.Drawing.SystemColors.Info
|
||||
TipAppearance4.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
TipAppearance4.ForeColor = System.Drawing.SystemColors.InfoText
|
||||
Me.FpSpread1.TextTipAppearance = TipAppearance4
|
||||
Me.FpSpread1.VerticalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded
|
||||
'
|
||||
'FpSpread1_Sheet1
|
||||
'
|
||||
Me.FpSpread1_Sheet1.Reset()
|
||||
Me.FpSpread1_Sheet1.SheetName = "Sheet1"
|
||||
'
|
||||
'TableLayoutPanel1
|
||||
'
|
||||
Me.TableLayoutPanel1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||
Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.TableLayoutPanel1.ColumnCount = 1
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.tb_deldesc, 0, 1)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.FpSpread1, 0, 2)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.TabControl1, 0, 0)
|
||||
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 34)
|
||||
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
|
||||
Me.TableLayoutPanel1.RowCount = 3
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 100.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 160.0!))
|
||||
Me.TableLayoutPanel1.Size = New System.Drawing.Size(982, 507)
|
||||
Me.TableLayoutPanel1.TabIndex = 5
|
||||
'
|
||||
'tb_deldesc
|
||||
'
|
||||
Me.tb_deldesc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.tb_deldesc.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.tb_deldesc.Font = New System.Drawing.Font("맑은 고딕", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.tb_deldesc.Location = New System.Drawing.Point(3, 250)
|
||||
Me.tb_deldesc.Multiline = True
|
||||
Me.tb_deldesc.Name = "tb_deldesc"
|
||||
Me.tb_deldesc.Size = New System.Drawing.Size(976, 94)
|
||||
Me.tb_deldesc.TabIndex = 5
|
||||
'
|
||||
'TabControl1
|
||||
'
|
||||
Me.TabControl1.Controls.Add(Me.TabPage1)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage2)
|
||||
Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TabControl1.Font = New System.Drawing.Font("맑은 고딕", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.TabControl1.Location = New System.Drawing.Point(3, 3)
|
||||
Me.TabControl1.Name = "TabControl1"
|
||||
Me.TabControl1.SelectedIndex = 0
|
||||
Me.TabControl1.Size = New System.Drawing.Size(976, 241)
|
||||
Me.TabControl1.TabIndex = 5
|
||||
'
|
||||
'TabPage1
|
||||
'
|
||||
Me.TabPage1.Controls.Add(Me.tb_deltext1)
|
||||
Me.TabPage1.Controls.Add(Me.tb_deltext2)
|
||||
Me.TabPage1.Controls.Add(Me.RadioButton2)
|
||||
Me.TabPage1.Controls.Add(Me.RadioButton1)
|
||||
Me.TabPage1.Location = New System.Drawing.Point(4, 24)
|
||||
Me.TabPage1.Name = "TabPage1"
|
||||
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage1.Size = New System.Drawing.Size(968, 213)
|
||||
Me.TabPage1.TabIndex = 0
|
||||
Me.TabPage1.Text = "직접입력"
|
||||
Me.TabPage1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'tb_deltext1
|
||||
'
|
||||
Me.tb_deltext1.Location = New System.Drawing.Point(33, 40)
|
||||
Me.tb_deltext1.Name = "tb_deltext1"
|
||||
Me.tb_deltext1.Size = New System.Drawing.Size(239, 23)
|
||||
Me.tb_deltext1.TabIndex = 6
|
||||
'
|
||||
'tb_deltext2
|
||||
'
|
||||
Me.tb_deltext2.Location = New System.Drawing.Point(33, 104)
|
||||
Me.tb_deltext2.Name = "tb_deltext2"
|
||||
Me.tb_deltext2.Size = New System.Drawing.Size(239, 23)
|
||||
Me.tb_deltext2.TabIndex = 5
|
||||
'
|
||||
'RadioButton2
|
||||
'
|
||||
Me.RadioButton2.AutoSize = True
|
||||
Me.RadioButton2.Location = New System.Drawing.Point(15, 79)
|
||||
Me.RadioButton2.Name = "RadioButton2"
|
||||
Me.RadioButton2.Size = New System.Drawing.Size(257, 19)
|
||||
Me.RadioButton2.TabIndex = 4
|
||||
Me.RadioButton2.TabStop = True
|
||||
Me.RadioButton2.Text = "지정된 문자가 들어있는 파일을 삭제합니다"
|
||||
Me.RadioButton2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton1
|
||||
'
|
||||
Me.RadioButton1.AutoSize = True
|
||||
Me.RadioButton1.Location = New System.Drawing.Point(15, 15)
|
||||
Me.RadioButton1.Name = "RadioButton1"
|
||||
Me.RadioButton1.Size = New System.Drawing.Size(177, 19)
|
||||
Me.RadioButton1.TabIndex = 3
|
||||
Me.RadioButton1.TabStop = True
|
||||
Me.RadioButton1.Text = "삭제할 파일명을 지정합니다"
|
||||
Me.RadioButton1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'TabPage2
|
||||
'
|
||||
Me.TabPage2.Location = New System.Drawing.Point(4, 24)
|
||||
Me.TabPage2.Name = "TabPage2"
|
||||
Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage2.Size = New System.Drawing.Size(968, 213)
|
||||
Me.TabPage2.TabIndex = 1
|
||||
Me.TabPage2.Text = "파일목록"
|
||||
Me.TabPage2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'desc_timer
|
||||
'
|
||||
Me.desc_timer.Interval = 1000
|
||||
'
|
||||
'ToolTip1
|
||||
'
|
||||
Me.ToolTip1.AutoPopDelay = 60000
|
||||
Me.ToolTip1.InitialDelay = 500
|
||||
Me.ToolTip1.ReshowDelay = 100
|
||||
'
|
||||
'Frm_DeleteFile
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(982, 566)
|
||||
Me.Controls.Add(Me.TableLayoutPanel1)
|
||||
Me.Controls.Add(Me.ToolStrip1)
|
||||
Me.Controls.Add(Me.StatusStrip1)
|
||||
Me.Name = "Frm_DeleteFile"
|
||||
Me.Text = "파일삭제"
|
||||
Me.ToolStrip1.ResumeLayout(False)
|
||||
Me.ToolStrip1.PerformLayout()
|
||||
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.TableLayoutPanel1.ResumeLayout(False)
|
||||
Me.TableLayoutPanel1.PerformLayout()
|
||||
Me.TabControl1.ResumeLayout(False)
|
||||
Me.TabPage1.ResumeLayout(False)
|
||||
Me.TabPage1.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents FB As System.Windows.Forms.FolderBrowserDialog
|
||||
Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip
|
||||
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
|
||||
Friend WithEvents ToolStripLabel1 As System.Windows.Forms.ToolStripLabel
|
||||
Friend WithEvents FpSpread1 As FarPoint.Win.Spread.FpSpread
|
||||
Friend WithEvents FpSpread1_Sheet1 As FarPoint.Win.Spread.SheetView
|
||||
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
|
||||
Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
|
||||
Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
|
||||
Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton
|
||||
Friend WithEvents tb_deldesc As System.Windows.Forms.TextBox
|
||||
Friend WithEvents desc_timer As System.Windows.Forms.Timer
|
||||
Friend WithEvents tb_deltext1 As System.Windows.Forms.TextBox
|
||||
Friend WithEvents tb_deltext2 As System.Windows.Forms.TextBox
|
||||
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
|
||||
End Class
|
||||
138
DriveInfo/입력폼/Frm_DeleteFile.resx
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="FB.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>82, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>200, 17</value>
|
||||
</metadata>
|
||||
<metadata name="FpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>309, 17</value>
|
||||
</metadata>
|
||||
<metadata name="desc_timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>463, 17</value>
|
||||
</metadata>
|
||||
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>574, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
61
DriveInfo/입력폼/Frm_DeleteFile.vb
Normal file
@@ -0,0 +1,61 @@
|
||||
Public Class Frm_DeleteFile
|
||||
Dim MsgBuff As New System.Text.StringBuilder
|
||||
Dim Err As Boolean = False
|
||||
|
||||
Private Sub desc_timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles desc_timer.Tick
|
||||
MsgBuff.Remove(0, MsgBuff.Length)
|
||||
Err = False
|
||||
|
||||
If Me.TabControl1.SelectedIndex = 0 Then
|
||||
If Me.RadioButton1.Checked Then
|
||||
If Me.tb_deltext1.Text = "" Or Me.tb_deltext1.Text.Length = 0 Then
|
||||
Err = True
|
||||
MsgBuff.AppendLine("삭제할 파일명에 들어가는 문자를 입력하세요")
|
||||
End If
|
||||
If Err = False Then
|
||||
MsgBuff.AppendLine("작업폴더 : " & Pub.GetWorkDIr & " 에서")
|
||||
MsgBuff.AppendLine("파일명이 [ " & Me.tb_deltext1.Text & "." & Pub.GetExtendFromMdi & " ] 인 파일들을 삭제합니다")
|
||||
MsgBuff.AppendLine("대상파일의 확장자구분은 [ " & IIf(Pub.GetExtendFromMdi = "*", "모든형식", Pub.GetExtendFromMdi) & " ] 이며 하위폴더는 " & IIf(Pub.GetSubDir, "[포함] 합니다", "[포함] 하지 않습니다"))
|
||||
End If
|
||||
ElseIf Me.RadioButton2.Checked Then
|
||||
If Me.tb_deltext2.Text = "" Or Me.tb_deltext2.Text.Length = 0 Then
|
||||
Err = True
|
||||
MsgBuff.AppendLine("삭제할 파일명에 들어가는 문자를 입력하세요")
|
||||
End If
|
||||
If Err = False Then
|
||||
MsgBuff.AppendLine("작업폴더 : " & Pub.GetWorkDIr & " 에서")
|
||||
MsgBuff.AppendLine("파일명에 [ " & Me.tb_deltext2.Text & " ] 가 들어있는 파일들을 삭제합니다")
|
||||
MsgBuff.AppendLine("대상파일의 확장자구분은 [ " & IIf(Pub.GetExtendFromMdi = "*", "모든형식", Pub.GetExtendFromMdi) & " ] 이며 하위폴더는 " & IIf(Pub.GetSubDir, "[포함] 합니다", "[포함] 하지 않습니다"))
|
||||
End If
|
||||
|
||||
Else
|
||||
MsgBuff.AppendLine("파일을 삭제할 방법이 선택되지 않았습니다")
|
||||
End If
|
||||
Else
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Me.tb_deldesc.Text = MsgBuff.ToString
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub Frm_DeleteFile_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
||||
' Me.desc_timer.Enabled = True
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub tb_deltext2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_deltext2.TextChanged
|
||||
Me.RadioButton2.Checked = True
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub tb_deldesc_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_deldesc.TextChanged
|
||||
Me.ToolTip1.SetToolTip(sender, Me.tb_deldesc.Text)
|
||||
End Sub
|
||||
|
||||
Private Sub tb_deltext1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_deltext1.TextChanged
|
||||
Me.RadioButton1.Checked = True
|
||||
End Sub
|
||||
End Class
|
||||
255
DriveInfo/입력폼/Frm_FileInfo.Designer.vb
generated
Normal file
@@ -0,0 +1,255 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Public Class Frm_FileInfo
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.label10 = New System.Windows.Forms.Label
|
||||
Me.driveRootDirectory = New System.Windows.Forms.TextBox
|
||||
Me.label6 = New System.Windows.Forms.Label
|
||||
Me.driveType = New System.Windows.Forms.TextBox
|
||||
Me.driveFormat = New System.Windows.Forms.TextBox
|
||||
Me.driveVolumeLabel = New System.Windows.Forms.TextBox
|
||||
Me.driveName = New System.Windows.Forms.TextBox
|
||||
Me.driveReadyStatus = New System.Windows.Forms.Label
|
||||
Me.label5 = New System.Windows.Forms.Label
|
||||
Me.label4 = New System.Windows.Forms.Label
|
||||
Me.label3 = New System.Windows.Forms.Label
|
||||
Me.label2 = New System.Windows.Forms.Label
|
||||
Me.drivesOnPc = New System.Windows.Forms.ComboBox
|
||||
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip
|
||||
Me.TabControl1 = New System.Windows.Forms.TabControl
|
||||
Me.TabPage1 = New System.Windows.Forms.TabPage
|
||||
Me.TabPage2 = New System.Windows.Forms.TabPage
|
||||
Me.TabPage3 = New System.Windows.Forms.TabPage
|
||||
Me.TabControl1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'label10
|
||||
'
|
||||
Me.label10.AutoSize = True
|
||||
Me.label10.Location = New System.Drawing.Point(62, 434)
|
||||
Me.label10.Name = "label10"
|
||||
Me.label10.Size = New System.Drawing.Size(87, 12)
|
||||
Me.label10.TabIndex = 35
|
||||
Me.label10.Text = "Select a Drive:"
|
||||
'
|
||||
'driveRootDirectory
|
||||
'
|
||||
Me.driveRootDirectory.Enabled = False
|
||||
Me.driveRootDirectory.Location = New System.Drawing.Point(649, 434)
|
||||
Me.driveRootDirectory.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.driveRootDirectory.Name = "driveRootDirectory"
|
||||
Me.driveRootDirectory.Size = New System.Drawing.Size(135, 21)
|
||||
Me.driveRootDirectory.TabIndex = 34
|
||||
'
|
||||
'label6
|
||||
'
|
||||
Me.label6.AutoSize = True
|
||||
Me.label6.Location = New System.Drawing.Point(539, 436)
|
||||
Me.label6.Name = "label6"
|
||||
Me.label6.Size = New System.Drawing.Size(88, 12)
|
||||
Me.label6.TabIndex = 33
|
||||
Me.label6.Text = "Root Directory:"
|
||||
'
|
||||
'driveType
|
||||
'
|
||||
Me.driveType.Enabled = False
|
||||
Me.driveType.Location = New System.Drawing.Point(636, 468)
|
||||
Me.driveType.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.driveType.Name = "driveType"
|
||||
Me.driveType.Size = New System.Drawing.Size(94, 21)
|
||||
Me.driveType.TabIndex = 32
|
||||
'
|
||||
'driveFormat
|
||||
'
|
||||
Me.driveFormat.Enabled = False
|
||||
Me.driveFormat.Location = New System.Drawing.Point(411, 465)
|
||||
Me.driveFormat.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.driveFormat.Name = "driveFormat"
|
||||
Me.driveFormat.Size = New System.Drawing.Size(135, 21)
|
||||
Me.driveFormat.TabIndex = 31
|
||||
'
|
||||
'driveVolumeLabel
|
||||
'
|
||||
Me.driveVolumeLabel.Enabled = False
|
||||
Me.driveVolumeLabel.Location = New System.Drawing.Point(172, 465)
|
||||
Me.driveVolumeLabel.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.driveVolumeLabel.Name = "driveVolumeLabel"
|
||||
Me.driveVolumeLabel.Size = New System.Drawing.Size(135, 21)
|
||||
Me.driveVolumeLabel.TabIndex = 30
|
||||
'
|
||||
'driveName
|
||||
'
|
||||
Me.driveName.Enabled = False
|
||||
Me.driveName.Location = New System.Drawing.Point(386, 432)
|
||||
Me.driveName.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.driveName.Name = "driveName"
|
||||
Me.driveName.Size = New System.Drawing.Size(135, 21)
|
||||
Me.driveName.TabIndex = 29
|
||||
'
|
||||
'driveReadyStatus
|
||||
'
|
||||
Me.driveReadyStatus.AutoSize = True
|
||||
Me.driveReadyStatus.Location = New System.Drawing.Point(233, 434)
|
||||
Me.driveReadyStatus.Name = "driveReadyStatus"
|
||||
Me.driveReadyStatus.Size = New System.Drawing.Size(64, 12)
|
||||
Me.driveReadyStatus.TabIndex = 28
|
||||
Me.driveReadyStatus.Text = "Not Ready"
|
||||
'
|
||||
'label5
|
||||
'
|
||||
Me.label5.AutoSize = True
|
||||
Me.label5.Location = New System.Drawing.Point(332, 435)
|
||||
Me.label5.Name = "label5"
|
||||
Me.label5.Size = New System.Drawing.Size(43, 12)
|
||||
Me.label5.TabIndex = 27
|
||||
Me.label5.Text = "Name:"
|
||||
'
|
||||
'label4
|
||||
'
|
||||
Me.label4.AutoSize = True
|
||||
Me.label4.Location = New System.Drawing.Point(64, 468)
|
||||
Me.label4.Name = "label4"
|
||||
Me.label4.Size = New System.Drawing.Size(87, 12)
|
||||
Me.label4.TabIndex = 26
|
||||
Me.label4.Text = "Volume Label:"
|
||||
'
|
||||
'label3
|
||||
'
|
||||
Me.label3.AutoSize = True
|
||||
Me.label3.Location = New System.Drawing.Point(585, 471)
|
||||
Me.label3.Name = "label3"
|
||||
Me.label3.Size = New System.Drawing.Size(38, 12)
|
||||
Me.label3.TabIndex = 25
|
||||
Me.label3.Text = "Type:"
|
||||
'
|
||||
'label2
|
||||
'
|
||||
Me.label2.AutoSize = True
|
||||
Me.label2.Location = New System.Drawing.Point(316, 468)
|
||||
Me.label2.Name = "label2"
|
||||
Me.label2.Size = New System.Drawing.Size(76, 12)
|
||||
Me.label2.TabIndex = 24
|
||||
Me.label2.Text = "File System:"
|
||||
'
|
||||
'drivesOnPc
|
||||
'
|
||||
Me.drivesOnPc.FormattingEnabled = True
|
||||
Me.drivesOnPc.Location = New System.Drawing.Point(172, 432)
|
||||
Me.drivesOnPc.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
|
||||
Me.drivesOnPc.Name = "drivesOnPc"
|
||||
Me.drivesOnPc.Size = New System.Drawing.Size(54, 20)
|
||||
Me.drivesOnPc.TabIndex = 23
|
||||
'
|
||||
'StatusStrip1
|
||||
'
|
||||
Me.StatusStrip1.Location = New System.Drawing.Point(0, 592)
|
||||
Me.StatusStrip1.Name = "StatusStrip1"
|
||||
Me.StatusStrip1.Size = New System.Drawing.Size(914, 22)
|
||||
Me.StatusStrip1.TabIndex = 36
|
||||
Me.StatusStrip1.Text = "StatusStrip1"
|
||||
'
|
||||
'TabControl1
|
||||
'
|
||||
Me.TabControl1.Controls.Add(Me.TabPage1)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage2)
|
||||
Me.TabControl1.Controls.Add(Me.TabPage3)
|
||||
Me.TabControl1.Location = New System.Drawing.Point(0, 1)
|
||||
Me.TabControl1.Name = "TabControl1"
|
||||
Me.TabControl1.SelectedIndex = 0
|
||||
Me.TabControl1.Size = New System.Drawing.Size(914, 252)
|
||||
Me.TabControl1.TabIndex = 37
|
||||
'
|
||||
'TabPage1
|
||||
'
|
||||
Me.TabPage1.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage1.Name = "TabPage1"
|
||||
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage1.Size = New System.Drawing.Size(906, 226)
|
||||
Me.TabPage1.TabIndex = 0
|
||||
Me.TabPage1.Text = "파일목록"
|
||||
Me.TabPage1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'TabPage2
|
||||
'
|
||||
Me.TabPage2.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage2.Name = "TabPage2"
|
||||
Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
|
||||
Me.TabPage2.Size = New System.Drawing.Size(906, 74)
|
||||
Me.TabPage2.TabIndex = 1
|
||||
Me.TabPage2.Text = "파일명변경"
|
||||
Me.TabPage2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'TabPage3
|
||||
'
|
||||
Me.TabPage3.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage3.Name = "TabPage3"
|
||||
Me.TabPage3.Size = New System.Drawing.Size(906, 74)
|
||||
Me.TabPage3.TabIndex = 2
|
||||
Me.TabPage3.Text = "파일삭제"
|
||||
Me.TabPage3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(914, 614)
|
||||
Me.Controls.Add(Me.TabControl1)
|
||||
Me.Controls.Add(Me.StatusStrip1)
|
||||
Me.Controls.Add(Me.label10)
|
||||
Me.Controls.Add(Me.driveRootDirectory)
|
||||
Me.Controls.Add(Me.label6)
|
||||
Me.Controls.Add(Me.driveType)
|
||||
Me.Controls.Add(Me.driveFormat)
|
||||
Me.Controls.Add(Me.driveVolumeLabel)
|
||||
Me.Controls.Add(Me.driveName)
|
||||
Me.Controls.Add(Me.driveReadyStatus)
|
||||
Me.Controls.Add(Me.label5)
|
||||
Me.Controls.Add(Me.label4)
|
||||
Me.Controls.Add(Me.label3)
|
||||
Me.Controls.Add(Me.label2)
|
||||
Me.Controls.Add(Me.drivesOnPc)
|
||||
Me.Name = "Form1"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "DriveInfo Sample"
|
||||
Me.TabControl1.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents label10 As System.Windows.Forms.Label
|
||||
Friend WithEvents driveRootDirectory As System.Windows.Forms.TextBox
|
||||
Friend WithEvents label6 As System.Windows.Forms.Label
|
||||
Friend WithEvents driveType As System.Windows.Forms.TextBox
|
||||
Friend WithEvents driveFormat As System.Windows.Forms.TextBox
|
||||
Friend WithEvents driveVolumeLabel As System.Windows.Forms.TextBox
|
||||
Friend WithEvents driveName As System.Windows.Forms.TextBox
|
||||
Friend WithEvents driveReadyStatus As System.Windows.Forms.Label
|
||||
Friend WithEvents label5 As System.Windows.Forms.Label
|
||||
Friend WithEvents label4 As System.Windows.Forms.Label
|
||||
Friend WithEvents label3 As System.Windows.Forms.Label
|
||||
Friend WithEvents label2 As System.Windows.Forms.Label
|
||||
Friend WithEvents drivesOnPc As System.Windows.Forms.ComboBox
|
||||
Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip
|
||||
Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
|
||||
Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
|
||||
Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
|
||||
|
||||
End Class
|
||||
123
DriveInfo/입력폼/Frm_FileInfo.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
131
DriveInfo/입력폼/Frm_FileInfo.vb
Normal file
@@ -0,0 +1,131 @@
|
||||
Imports System.IO
|
||||
|
||||
Public Class Frm_FileInfo
|
||||
|
||||
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
||||
Me.driveReadyStatus.Text = ""
|
||||
|
||||
'Get a DriveInfo object for each drive on the system
|
||||
Dim drives As System.IO.DriveInfo() = System.IO.DriveInfo.GetDrives
|
||||
|
||||
'Populate the drives combo box with all drives
|
||||
drivesOnPc.Items.AddRange(drives)
|
||||
End Sub
|
||||
|
||||
Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
|
||||
|
||||
' Rectangle to define size of Pie Chart
|
||||
Dim rect As Rectangle = New Rectangle(370, 20, 200, 200)
|
||||
|
||||
' Rectangle to use as a border around Pie Chart
|
||||
Dim rect2 As Rectangle = New Rectangle(310, 10, 320, 320)
|
||||
|
||||
' Rectangles for color legend
|
||||
Dim freeLegend As Rectangle = New Rectangle(315, 275, 20, 20)
|
||||
Dim usedLegend As Rectangle = New Rectangle(315, 300, 20, 20)
|
||||
|
||||
e.Graphics.DrawRectangle(Pens.Black, rect2)
|
||||
|
||||
If isSpaceInfoAvailable = True Then
|
||||
|
||||
' Draw Pie Chart
|
||||
e.Graphics.FillPie(Brushes.Green, rect, 0, sweep)
|
||||
e.Graphics.FillPie(Brushes.Red, rect, sweep, 360 - sweep)
|
||||
|
||||
' Draw Legend
|
||||
e.Graphics.FillRectangle(Brushes.Green, freeLegend)
|
||||
e.Graphics.FillRectangle(Brushes.Red, usedLegend)
|
||||
|
||||
' Add text
|
||||
e.Graphics.DrawString("Capacity:", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(350, 230))
|
||||
e.Graphics.DrawString("Used Space:", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(335, 275))
|
||||
e.Graphics.DrawString("Free Space:", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(335, 300))
|
||||
e.Graphics.DrawString(totalSpace.ToString("N") + " bytes", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(420, 230))
|
||||
e.Graphics.DrawString(usedSpace.ToString("N") + " bytes", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(420, 275))
|
||||
e.Graphics.DrawString(freeSpace.ToString("N") + " bytes", New Font("Tahoma", 10, FontStyle.Regular), Brushes.Black, New PointF(420, 300))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub drivesOnPc_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles drivesOnPc.SelectedIndexChanged
|
||||
|
||||
' Determine drive info for selected drive letter
|
||||
LoadDriveInfo(drivesOnPc.Items(drivesOnPc.SelectedIndex).ToString)
|
||||
|
||||
' Redraw the pie chart
|
||||
Me.Invalidate()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub LoadDriveInfo(ByVal driveLetter As String)
|
||||
|
||||
' Use the DriveInfo class to obtain information on drives.
|
||||
' Drive name must be either an upper or lower case letter from 'a' to 'z'.
|
||||
' You can not use this method to obtain information on drive names that are null or use UNC (\\server\share) paths.
|
||||
|
||||
Dim driveInfo As System.IO.DriveInfo
|
||||
|
||||
' Check for valid drive names
|
||||
Try
|
||||
driveInfo = New System.IO.DriveInfo(driveLetter)
|
||||
Catch ex1 As ArgumentNullException
|
||||
MessageBox.Show("The drive letter can not be null./n/r" + ex1.Message, "Drive Letter error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||
Return
|
||||
Catch ex2 As ArgumentException
|
||||
MessageBox.Show("The drive letter must be in the range of a-z./n/r" + ex2.Message, "Drive Letter error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||
Return
|
||||
End Try
|
||||
|
||||
Me.driveName.Text = driveInfo.Name
|
||||
|
||||
' Some drives do not provide all of the info
|
||||
' have to trap for exceptions and just move on to the next drive
|
||||
Try
|
||||
If driveInfo.VolumeLabel.Length > 0 Then
|
||||
Me.driveVolumeLabel.Text = driveInfo.VolumeLabel
|
||||
Else
|
||||
Me.driveVolumeLabel.Text = "None"
|
||||
End If
|
||||
Me.driveFormat.Text = driveInfo.DriveFormat
|
||||
totalSpace = driveInfo.TotalSize
|
||||
freeSpace = driveInfo.TotalFreeSpace
|
||||
usedSpace = totalSpace - freeSpace
|
||||
sweep = 360.0F * freeSpace / totalSpace
|
||||
isSpaceInfoAvailable = True
|
||||
Catch
|
||||
Me.driveVolumeLabel.Text = "Not available"
|
||||
Me.driveFormat.Text = "Not available"
|
||||
isSpaceInfoAvailable = False
|
||||
End Try
|
||||
|
||||
Me.driveType.Text = driveInfo.DriveType.ToString
|
||||
|
||||
Me.driveRootDirectory.Text = driveInfo.RootDirectory.ToString
|
||||
dirInfo = driveInfo.RootDirectory
|
||||
|
||||
If driveInfo.IsReady = True Then
|
||||
Me.driveReadyStatus.Text = "Drive is Ready"
|
||||
Else
|
||||
Me.driveReadyStatus.Text = "Drive is NOT Ready"
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function ConvertBytesToMB(ByVal bytes As Int64) As String
|
||||
Dim mb As Long = bytes / 1048576
|
||||
Return mb.ToString("N")
|
||||
End Function
|
||||
|
||||
Private Function ConvertBytesToGB(ByVal bytes As Int64) As String
|
||||
Dim gb As Long = bytes / 1073741824
|
||||
Return gb.ToString("N")
|
||||
End Function
|
||||
|
||||
|
||||
Private dirInfo As DirectoryInfo
|
||||
Private totalSpace As Long
|
||||
Private freeSpace As Long
|
||||
Private usedSpace As Long
|
||||
Private sweep As Single
|
||||
Private isSpaceInfoAvailable As Boolean
|
||||
|
||||
End Class
|
||||
29
DriveInfo/입력폼/Frm_RenameFile.Designer.vb
generated
Normal file
@@ -0,0 +1,29 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Frm_RenameFile
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
components = New System.ComponentModel.Container
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Text = "Frm_RenameFile"
|
||||
End Sub
|
||||
End Class
|
||||
3
DriveInfo/입력폼/Frm_RenameFile.vb
Normal file
@@ -0,0 +1,3 @@
|
||||
Public Class Frm_RenameFile
|
||||
|
||||
End Class
|
||||
127
DriveInfo/컨트롤/ImpCtl.Designer.vb
generated
Normal file
@@ -0,0 +1,127 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class impctl
|
||||
Inherits System.Windows.Forms.UserControl
|
||||
|
||||
'UserControl은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows Form 디자이너에 필요합니다.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
|
||||
'수정하려면 Windows Form 디자이너를 사용하십시오.
|
||||
'코드 편집기를 사용하여 수정하지 마십시오.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container
|
||||
Me.TextBox3 = New System.Windows.Forms.TextBox
|
||||
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
|
||||
Me.TextBox2 = New System.Windows.Forms.TextBox
|
||||
Me.Label1 = New System.Windows.Forms.Label
|
||||
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
|
||||
Me.ComboBox1 = New System.Windows.Forms.ComboBox
|
||||
Me.TableLayoutPanel1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'TextBox3
|
||||
'
|
||||
Me.TextBox3.BackColor = System.Drawing.Color.LightSlateGray
|
||||
Me.TextBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.TextBox3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TextBox3.Location = New System.Drawing.Point(0, 111)
|
||||
Me.TextBox3.Margin = New System.Windows.Forms.Padding(0)
|
||||
Me.TextBox3.Name = "TextBox3"
|
||||
Me.TextBox3.Size = New System.Drawing.Size(74, 21)
|
||||
Me.TextBox3.TabIndex = 17
|
||||
Me.TextBox3.TabStop = False
|
||||
Me.TextBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'TextBox2
|
||||
'
|
||||
Me.TextBox2.BackColor = System.Drawing.Color.LightSlateGray
|
||||
Me.TextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.TextBox2.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TextBox2.Location = New System.Drawing.Point(0, 89)
|
||||
Me.TextBox2.Margin = New System.Windows.Forms.Padding(0)
|
||||
Me.TextBox2.Name = "TextBox2"
|
||||
Me.TextBox2.Size = New System.Drawing.Size(74, 21)
|
||||
Me.TextBox2.TabIndex = 15
|
||||
Me.TextBox2.TabStop = False
|
||||
Me.TextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||
Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.Label1.BackColor = System.Drawing.Color.White
|
||||
Me.Label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label1.Font = New System.Drawing.Font("맑은 고딕", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
|
||||
Me.Label1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Label1.Margin = New System.Windows.Forms.Padding(0)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(74, 67)
|
||||
Me.Label1.TabIndex = 14
|
||||
Me.Label1.Text = "제목줄"
|
||||
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'TableLayoutPanel1
|
||||
'
|
||||
Me.TableLayoutPanel1.ColumnCount = 1
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.Label1, 0, 0)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.TextBox3, 0, 3)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.TextBox2, 0, 2)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.ComboBox1, 0, 1)
|
||||
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.TableLayoutPanel1.Margin = New System.Windows.Forms.Padding(0)
|
||||
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
|
||||
Me.TableLayoutPanel1.RowCount = 4
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22.0!))
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22.0!))
|
||||
Me.TableLayoutPanel1.Size = New System.Drawing.Size(74, 133)
|
||||
Me.TableLayoutPanel1.TabIndex = 18
|
||||
'
|
||||
'ComboBox1
|
||||
'
|
||||
Me.ComboBox1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.ComboBox1.FormattingEnabled = True
|
||||
Me.ComboBox1.Items.AddRange(New Object() {"#열번호", "?", "*", "파일명", "확장자"})
|
||||
Me.ComboBox1.Location = New System.Drawing.Point(0, 67)
|
||||
Me.ComboBox1.Margin = New System.Windows.Forms.Padding(0)
|
||||
Me.ComboBox1.Name = "ComboBox1"
|
||||
Me.ComboBox1.Size = New System.Drawing.Size(74, 20)
|
||||
Me.ComboBox1.TabIndex = 18
|
||||
'
|
||||
'impctl
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Controls.Add(Me.TableLayoutPanel1)
|
||||
Me.Name = "impctl"
|
||||
Me.Size = New System.Drawing.Size(74, 133)
|
||||
Me.TableLayoutPanel1.ResumeLayout(False)
|
||||
Me.TableLayoutPanel1.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
|
||||
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
|
||||
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
|
||||
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
|
||||
Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
|
||||
|
||||
End Class
|
||||
123
DriveInfo/컨트롤/ImpCtl.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
240
DriveInfo/컨트롤/ImpCtl.vb
Normal file
@@ -0,0 +1,240 @@
|
||||
Public Class impctl
|
||||
Dim v필드명 As String
|
||||
'Dim v_nullvaluevisible As Boolean = True
|
||||
|
||||
Public Event TimeExpired(ByVal sender As Object, ByVal Status As String)
|
||||
''' <summary>
|
||||
''' 사용여부
|
||||
''' </summary>
|
||||
''' <value></value>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Overloads Property enabled() As Boolean
|
||||
Get
|
||||
Return Me.ComboBox1.Enabled
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
Me.ComboBox1.Enabled = value
|
||||
Me.Label1.Enabled = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 데이터가 표시된 포맷을 입력
|
||||
''' </summary>
|
||||
''' <value></value>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Property 포맷마스크() As String
|
||||
Get
|
||||
Return Me.TextBox3.Text
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
Me.TextBox3.Text = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 연결할 필드명입니다.
|
||||
''' </summary>
|
||||
''' <value></value>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Property 필드명() As String
|
||||
Get
|
||||
Return v필드명
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
v필드명 = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property 제목() As String
|
||||
Get
|
||||
Return Me.Label1.Text
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
Me.Label1.Text = value.Replace("/", vbCrLf)
|
||||
End Set
|
||||
End Property
|
||||
Public Property 문자열자르기() As String
|
||||
Get
|
||||
Return Me.TextBox2.Text
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
Me.TextBox2.Text = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property 열번호() As String
|
||||
Get
|
||||
Return Me.ComboBox1.Text
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
Me.ComboBox1.Text = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Public Function getValue(ByVal Spread As FarPoint.Win.Spread.FpSpread, ByVal RowPos As Integer, Optional ByVal OrgFn As String = "원본파일명", Optional ByVal OrgExt As String = "원본확장자") As String
|
||||
Dim SUbidx As Integer
|
||||
Dim VALSTR As String
|
||||
Dim 파일명 As String
|
||||
|
||||
If Me.열번호 = "" Then '//즉 없다는뜻이다.
|
||||
Return ""
|
||||
Else '//있다.
|
||||
'//원본파일명과 원본확장가 이 두가지를 처리해야한다.
|
||||
|
||||
If Me.열번호.Length = 1 Then Return Me.열번호 '//길이 1개짜리는 뭔지모르겟지만 걍 반환
|
||||
If Me.열번호.Substring(0, 1) = "#" AndAlso IsNumeric(Me.열번호.Substring(1)) = False Then Return Me.열번호 '//#인데 그 다음이 숫자가 아닐경우는 바로 리턴
|
||||
|
||||
|
||||
If Me.열번호 = "파일명" Then
|
||||
VALSTR = OrgFn
|
||||
ElseIf Me.열번호 = "확장자" Then
|
||||
VALSTR = OrgExt
|
||||
ElseIf Me.열번호.Substring(0, 1) <> "#" Then '//열번호도 아니고 원본내용도아니라면 그냥 리턴
|
||||
Return Me.열번호
|
||||
Else '//이건 열번호를 지정한 경우에해당한다.
|
||||
If RowPos > Spread.ActiveSheet.RowCount Then Return "[Err:줄초과]" '//줄번호가 전체 줄번호를 초과할경우
|
||||
SUbidx = Me.열번호.Substring(1) '//#을 제외한 컬럼번호만을 가져온다.
|
||||
If SUbidx > Spread.ActiveSheet.ColumnCount Then Return "[Err:열초과]" '//지정된 컬럼번호가 전체 컬럼수를 초과할경우
|
||||
VALSTR = Spread.ActiveSheet.Cells(RowPos - 1, CInt(SUbidx - 1)).Text
|
||||
If VALSTR.Trim = "" Then Return "" '//가져온문자가없으면 리턴
|
||||
End If
|
||||
|
||||
파일명 = VALSTR
|
||||
'//이걸로 파일명은 추출했따 이제 자르기만 수행하면된다.
|
||||
|
||||
If Me.문자열자르기 = "" OrElse Me.문자열자르기 = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
|
||||
Return VALSTR
|
||||
Else '//문자열자르기가 있으면 잘라서 보내준다.
|
||||
Dim DIV(1) As String
|
||||
If Me.문자열자르기.IndexOf(",") = -1 Then
|
||||
DIV(0) = Me.문자열자르기
|
||||
DIV(1) = "0"
|
||||
Else
|
||||
DIV = Me.문자열자르기.Split(",")
|
||||
End If
|
||||
|
||||
If DIV(1) = "0" Then '//시작부터 끝까지
|
||||
Try
|
||||
If 파일명.Length < DIV(0) Then
|
||||
VALSTR = ""
|
||||
Else
|
||||
VALSTR = 파일명.Substring(DIV(0) - 1)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
VALSTR = 파일명
|
||||
End Try
|
||||
Return VALSTR
|
||||
|
||||
Else '/지정범위
|
||||
Try
|
||||
VALSTR = 파일명.Substring(DIV(0) - 1, DIV(1))
|
||||
Catch ex As Exception
|
||||
VALSTR = 파일명
|
||||
End Try
|
||||
Return VALSTR
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub New()
|
||||
|
||||
' 이 호출은 Windows Form 디자이너에 필요합니다.
|
||||
InitializeComponent()
|
||||
|
||||
' AddHandler TextBox1.TextChanged, ADDRESS OF
|
||||
'AddHandler TextBox1.TextChanged, AddressOf ControlChanged
|
||||
' AddHandler Me.DoubleClick, Me.TextBox1.DoubleClick
|
||||
'AddHandler Me.TimeExpired, AddressOf timeExp
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
Private Sub timeExp(ByVal sender As Object, ByVal stri As String)
|
||||
'MsgBox(stri)
|
||||
|
||||
End Sub
|
||||
Private Sub ControlChanged(ByVal sender As Object, ByVal e As System.EventArgs)
|
||||
Dim A As TextBox = CType(sender, TextBox)
|
||||
If A.Text.Length <= 0 Then Exit Sub
|
||||
|
||||
Select Case A.Text.Substring(0, 1)
|
||||
Case ":"
|
||||
If IsNumeric(A.Text.Substring(1)) Then
|
||||
A.BackColor = Color.LawnGreen
|
||||
Else
|
||||
A.BackColor = Color.Tomato
|
||||
End If
|
||||
Case "?"
|
||||
A.BackColor = Color.Gray
|
||||
Case "#"
|
||||
A.BackColor = Color.SteelBlue
|
||||
Case Else
|
||||
A.BackColor = Color.White
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub UserControl1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.DoubleClick
|
||||
RaiseEvent TimeExpired(Me, "sdf")
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
|
||||
|
||||
RaiseEvent TimeExpired(Me, "sdf")
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Enter
|
||||
Me.ComboBox1.SelectAll()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
|
||||
Me.TextBox2.SelectAll()
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.GotFocus
|
||||
Me.TextBox2.SelectAll()
|
||||
' SendKeys.Send("{TAB}")
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.GotFocus
|
||||
Me.ComboBox1.SelectAll()
|
||||
End Sub
|
||||
|
||||
Private Sub ComboBox1_STextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
|
||||
'이 컨트롤은 파일관리자용으로 특화된 컨트롤이다.
|
||||
'기본적인 입력은 해당 문자열이다
|
||||
'#숫자 는 연결시킬 열번호이다. (이것은 푸른색으로한다)
|
||||
|
||||
Dim A As ComboBox = CType(sender, ComboBox)
|
||||
If A.Text.Length <= 0 Then Exit Sub '//입력된 길이가 없다면 리턴
|
||||
|
||||
|
||||
|
||||
Select Case A.Text.Substring(0, 1) '//앞자리문자로 구분한다.
|
||||
Case "#"
|
||||
If Not IsNumeric(A.Text.Substring(1)) Then
|
||||
A.BackColor = Color.Tomato
|
||||
Else
|
||||
A.BackColor = Color.SteelBlue
|
||||
End If
|
||||
|
||||
Case Else
|
||||
A.BackColor = Color.White
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
405
FTP_Client/Client_0.cs
Normal file
@@ -0,0 +1,405 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace FTPClients
|
||||
{
|
||||
public class Client_0
|
||||
{
|
||||
public string host = null;
|
||||
public string user = null;
|
||||
public string pass = null;
|
||||
private FtpWebRequest ftpRequest = null;
|
||||
private FtpWebResponse ftpResponse = null;
|
||||
private Stream ftpStream = null;
|
||||
private int bufferSize = 2048;
|
||||
public Boolean Passive = false;
|
||||
public Boolean utf8 = false;
|
||||
|
||||
////프로브센서의 제목이 클릭됨
|
||||
//public event MessageHandler Message;
|
||||
public delegate void MessageHandler(int idx);
|
||||
|
||||
/* Construct Object */
|
||||
public Client_0(string hostIP, string userName, string password, Boolean _passive) { host = hostIP; user = userName; pass = password; Passive = _passive; }
|
||||
|
||||
/* Download File */
|
||||
public void download(string remoteFile, string localFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + remoteFile;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Get the FTP Server's Response Stream */
|
||||
ftpStream = ftpResponse.GetResponseStream();
|
||||
/* Open a File Stream to Write the Downloaded File */
|
||||
FileStream localFileStream = new FileStream(localFile, FileMode.Create);
|
||||
/* Buffer for the Downloaded Data */
|
||||
byte[] byteBuffer = new byte[bufferSize];
|
||||
int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
|
||||
/* Download the File by Writing the Buffered Data Until the Transfer is Complete */
|
||||
try
|
||||
{
|
||||
while (bytesRead > 0)
|
||||
{
|
||||
localFileStream.Write(byteBuffer, 0, bytesRead);
|
||||
bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
|
||||
}
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Resource Cleanup */
|
||||
localFileStream.Close();
|
||||
ftpStream.Close();
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
return;
|
||||
}
|
||||
|
||||
/* Upload File */
|
||||
public Boolean upload(string remoteFile, string localFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + remoteFile;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpStream = ftpRequest.GetRequestStream();
|
||||
/* Open a File Stream to Read the File for Upload */
|
||||
FileStream localFileStream = new FileStream(localFile, FileMode.Open);
|
||||
/* Buffer for the Downloaded Data */
|
||||
byte[] byteBuffer = new byte[bufferSize];
|
||||
int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
|
||||
/* Upload the File by Sending the Buffered Data Until the Transfer is Complete */
|
||||
|
||||
Boolean onerr = false;
|
||||
try
|
||||
{
|
||||
while (bytesSent != 0)
|
||||
{
|
||||
ftpStream.Write(byteBuffer, 0, bytesSent);
|
||||
bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
|
||||
}
|
||||
onerr = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.ToString());
|
||||
onerr = false;
|
||||
}
|
||||
/* Resource Cleanup */
|
||||
localFileStream.Close();
|
||||
ftpStream.Close();
|
||||
ftpRequest = null;
|
||||
return onerr;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete File */
|
||||
public void delete(string deleteFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + deleteFile;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Resource Cleanup */
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
return;
|
||||
}
|
||||
|
||||
/* Rename File */
|
||||
public void rename(string currentFileNameAndPath, string newFileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + currentFileNameAndPath;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.Rename;
|
||||
/* Rename the File */
|
||||
ftpRequest.RenameTo = newFileName;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Resource Cleanup */
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
return;
|
||||
}
|
||||
|
||||
/* Create a New Directory on the FTP Server */
|
||||
public void createDirectory(string newDirectory)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + newDirectory;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Resource Cleanup */
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
return;
|
||||
}
|
||||
|
||||
/* Get the Date/Time a File was Created */
|
||||
public string getFileCreatedDateTime(string fileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + fileName;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.GetDateTimestamp;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpStream = ftpResponse.GetResponseStream();
|
||||
/* Get the FTP Server's Response Stream */
|
||||
StreamReader ftpReader = new StreamReader(ftpStream);
|
||||
/* Store the Raw Response */
|
||||
string fileInfo = null;
|
||||
/* Read the Full Response Stream */
|
||||
try { fileInfo = ftpReader.ReadToEnd(); }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Resource Cleanup */
|
||||
ftpReader.Close();
|
||||
ftpStream.Close();
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
/* Return File Created Date Time */
|
||||
return fileInfo;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Return an Empty string Array if an Exception Occurs */
|
||||
return "";
|
||||
}
|
||||
|
||||
/* Get the Size of a File */
|
||||
public string getFileSize(string fileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + fileName;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpStream = ftpResponse.GetResponseStream();
|
||||
/* Get the FTP Server's Response Stream */
|
||||
StreamReader ftpReader = new StreamReader(ftpStream);
|
||||
/* Store the Raw Response */
|
||||
string fileInfo = null;
|
||||
/* Read the Full Response Stream */
|
||||
try { while (ftpReader.Peek() != -1) { fileInfo = ftpReader.ReadToEnd(); } }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Resource Cleanup */
|
||||
ftpReader.Close();
|
||||
ftpStream.Close();
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
/* Return File Size */
|
||||
return fileInfo;
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Return an Empty string Array if an Exception Occurs */
|
||||
return "";
|
||||
}
|
||||
|
||||
/* List Directory Contents File/Folder Name Only */
|
||||
public string[] directoryListSimple(string directory)
|
||||
{
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + directory;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = true;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpStream = ftpResponse.GetResponseStream();
|
||||
/* Get the FTP Server's Response Stream */
|
||||
StreamReader ftpReader = new StreamReader(ftpStream);
|
||||
/* Store the Raw Response */
|
||||
string directoryRaw = null;
|
||||
/* Read Each Line of the Response and Append a Pipe to Each Line for Easy Parsing */
|
||||
try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Resource Cleanup */
|
||||
ftpReader.Close();
|
||||
ftpStream.Close();
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
/* Return the Directory Listing as a string Array by Parsing 'directoryRaw' with the Delimiter you Append (I use | in This Example) */
|
||||
|
||||
if (utf8)
|
||||
{
|
||||
directoryRaw = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Default.GetBytes(directoryRaw));
|
||||
}
|
||||
|
||||
try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Return an Empty string Array if an Exception Occurs */
|
||||
return new string[] { "" };
|
||||
}
|
||||
|
||||
/* List Directory Contents in Detail (Name, Size, Created, etc.) */
|
||||
public string[] directoryListDetailed(string directory,out Boolean isErr,out string ErrMsg)
|
||||
{
|
||||
isErr = false;
|
||||
ErrMsg = "";
|
||||
try
|
||||
{
|
||||
/* Create an FTP Request */
|
||||
String url = host + "/" + directory;
|
||||
url = url.Replace("//", "/");
|
||||
ftpRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://" + url);
|
||||
/* Log in to the FTP Server with the User Name and Password Provided */
|
||||
ftpRequest.Credentials = new NetworkCredential(user, pass);
|
||||
/* When in doubt, use these options */
|
||||
ftpRequest.UseBinary = true;
|
||||
ftpRequest.UsePassive = Passive;
|
||||
ftpRequest.KeepAlive = false;
|
||||
/* Specify the Type of FTP Request */
|
||||
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
|
||||
/* Establish Return Communication with the FTP Server */
|
||||
ftpStream = ftpResponse.GetResponseStream();
|
||||
/* Get the FTP Server's Response Stream */
|
||||
StreamReader ftpReader;// = new StreamReader(ftpStream,System.Text.Encoding.Default);
|
||||
|
||||
if (utf8)
|
||||
{
|
||||
ftpReader = new StreamReader(ftpStream, System.Text.Encoding.UTF8);
|
||||
}
|
||||
else
|
||||
{
|
||||
ftpReader = new StreamReader(ftpStream, System.Text.Encoding.Default);
|
||||
}
|
||||
|
||||
/* Store the Raw Response */
|
||||
string directoryRaw = null;
|
||||
/* Read Each Line of the Response and Append a Pipe to Each Line for Easy Parsing */
|
||||
try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
/* Resource Cleanup */
|
||||
ftpReader.Close();
|
||||
ftpStream.Close();
|
||||
ftpResponse.Close();
|
||||
ftpRequest = null;
|
||||
/* Return the Directory Listing as a string Array by Parsing 'directoryRaw' with the Delimiter you Append (I use | in This Example) */
|
||||
//if (utf8)
|
||||
//{
|
||||
// directoryRaw = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Default.GetBytes(directoryRaw));
|
||||
//}
|
||||
try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }
|
||||
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
isErr = true;
|
||||
ErrMsg = ex.Message;
|
||||
Console.WriteLine(ex.ToString());
|
||||
}
|
||||
/* Return an Empty string Array if an Exception Occurs */
|
||||
|
||||
return new string[] { "" };
|
||||
}
|
||||
}
|
||||
}
|
||||
1047
FTP_Client/Client_1.cs
Normal file
1058
FTP_Client/Client_2.cs
Normal file
53
FTP_Client/FTP_Client.csproj
Normal file
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{9A2A1B46-799E-4D8E-8682-1F82963836A3}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>FTPClients</RootNamespace>
|
||||
<AssemblyName>FTP_Client</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Client_0.cs" />
|
||||
<Compile Include="Client_1.cs" />
|
||||
<Compile Include="Client_2.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
36
FTP_Client/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
|
||||
// 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이 특성 값을 변경하십시오.
|
||||
[assembly: AssemblyTitle("FTP_Client")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("FTP_Client")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("0159399e-a5a2-4699-b491-00a507ff5381")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
|
||||
// 지정되도록 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
BIN
FileManager.suo
Normal file
BIN
Folder.ico
Normal file
|
After Width: | Height: | Size: 158 KiB |
1455
Setup1/Setup1.vdproj
Normal file
20
[NET2]ArinLog/ArinLog.sln
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArinLog", "ArinLog.vbproj", "{E9E16A98-8F8D-4848-A27E-4571C184FB1A}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E9E16A98-8F8D-4848-A27E-4571C184FB1A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
[NET2]ArinLog/ArinLog.suo
Normal file
107
[NET2]ArinLog/ArinLog.vbproj
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>
|
||||
</SchemaVersion>
|
||||
<ProjectGuid>{E9E16A98-8F8D-4848-A27E-4571C184FB1A}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>ArinLog</RootNamespace>
|
||||
<AssemblyName>ArinLog</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>ArinLog.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>ArinLog.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Class1.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
91
[NET2]ArinLog/Class1.vb
Normal file
@@ -0,0 +1,91 @@
|
||||
Public Class ArinLog
|
||||
|
||||
Dim file As System.IO.FileInfo
|
||||
Dim buffer As System.Text.StringBuilder
|
||||
Dim Datatable As DataTable
|
||||
Public Event RaiseMsg(time As String, gubun As String, msg As String)
|
||||
|
||||
Public Enum ETYPE
|
||||
STARTUP
|
||||
SHUTDOWN
|
||||
[ERROR]
|
||||
NORMAL
|
||||
TCP
|
||||
KEYBOARD
|
||||
MOUSE
|
||||
PROCESS
|
||||
USERCONTROL
|
||||
BARCODE
|
||||
VISION
|
||||
PRINTER
|
||||
OCR
|
||||
OCRERROR
|
||||
MOTION
|
||||
SQL
|
||||
RS232
|
||||
End Enum
|
||||
|
||||
Dim setdate As String = ""
|
||||
Public FlushTime As Date = Now '//실기록완료한시간
|
||||
|
||||
Public Function GetBuffer() As String
|
||||
Return buffer.ToString
|
||||
End Function
|
||||
|
||||
Public Sub New()
|
||||
setdate = Now.ToString("yyMMdd")
|
||||
Me.file = New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\LOG\" & setdate & ".txt")
|
||||
If file.Directory.Exists = False Then file.Directory.Create()
|
||||
buffer = New System.Text.StringBuilder
|
||||
|
||||
Datatable = New DataTable
|
||||
Datatable.Columns.Add("시간")
|
||||
Datatable.Columns.Add("형태")
|
||||
Datatable.Columns.Add("메세지")
|
||||
End Sub
|
||||
Public Sub Add(bodymsg As String, Optional autof As Boolean = False)
|
||||
Add(ETYPE.NORMAL, bodymsg, autof)
|
||||
End Sub
|
||||
Public Sub Add(TYPE As ETYPE, bodymsg As String, Optional autof As Boolean = False)
|
||||
Add(TYPE.ToString(), bodymsg, autof)
|
||||
End Sub
|
||||
|
||||
Public Sub Add(TYPE As String, bodymsg As String, Optional autof As Boolean = False)
|
||||
If setdate <> Now.ToString("yyMMdd") Then '//날짜가 달라지면 파일을 변경한다.
|
||||
Flush()
|
||||
setdate = Now.ToString("yyMMdd")
|
||||
Me.file = New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\LOG\" & setdate & ".txt")
|
||||
End If
|
||||
|
||||
Dim nowdate As Date = Now
|
||||
Dim m As String = nowdate.ToString("yy-MM-dd HH:mm:ss") & "." & nowdate.Millisecond.ToString("000") & vbTab & TYPE.ToString.PadRight(20) & vbTab & bodymsg
|
||||
buffer.AppendLine(m)
|
||||
If autof OrElse buffer.Length > 100 OrElse TYPE = "ERROR Then '//에러발생시에는 바로 플러싱" Then
|
||||
Flush()
|
||||
End If
|
||||
|
||||
'//메세지발생함
|
||||
RaiseEvent RaiseMsg(nowdate.ToString("yy-MM-dd HH:mm:ss") & "." & nowdate.Millisecond.ToString("000"), TYPE, bodymsg)
|
||||
End Sub
|
||||
|
||||
|
||||
Public Function Flush() As Boolean
|
||||
Try
|
||||
My.Computer.FileSystem.WriteAllText(file.ToString, buffer.ToString, True)
|
||||
buffer = New System.Text.StringBuilder
|
||||
FlushTime = Now
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Overrides Function toString() As String
|
||||
Try
|
||||
Return My.Computer.FileSystem.ReadAllText(file.FullName)
|
||||
Catch ex As Exception
|
||||
Return ""
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
13
[NET2]ArinLog/My Project/Application.Designer.vb
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
10
[NET2]ArinLog/My Project/Application.myapp
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<MySubMain>false</MySubMain>
|
||||
<SingleInstance>false</SingleInstance>
|
||||
<ShutdownMode>0</ShutdownMode>
|
||||
<EnableVisualStyles>true</EnableVisualStyles>
|
||||
<AuthenticationMode>0</AuthenticationMode>
|
||||
<ApplicationType>1</ApplicationType>
|
||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||
</MyApplicationData>
|
||||
35
[NET2]ArinLog/My Project/AssemblyInfo.vb
Normal file
@@ -0,0 +1,35 @@
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
|
||||
' 어셈블리와 관련된 정보를 수정하려면
|
||||
' 이 특성 값을 변경하십시오.
|
||||
|
||||
' 어셈블리 특성 값을 검토합니다.
|
||||
|
||||
<Assembly: AssemblyTitle("ArinLog")>
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("ArinLog")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2014")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
'이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
<Assembly: Guid("0fc3516b-c19a-4cf7-9544-587a2a680242")>
|
||||
|
||||
' 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
'
|
||||
' 주 버전
|
||||
' 부 버전
|
||||
' 빌드 번호
|
||||
' 수정 버전
|
||||
'
|
||||
' 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
|
||||
' 지정되도록 할 수 있습니다.
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
63
[NET2]ArinLog/My Project/Resources.Designer.vb
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||
'클래스에서 자동으로 생성되었습니다.
|
||||
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||
'''<summary>
|
||||
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ArinLog.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture
|
||||
''' 속성을 재정의합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
117
[NET2]ArinLog/My Project/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
73
[NET2]ArinLog/My Project/Settings.Designer.vb
generated
Normal file
@@ -0,0 +1,73 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||
|
||||
#Region "My.Settings 자동 저장 기능"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.ArinLog.My.MySettings
|
||||
Get
|
||||
Return Global.ArinLog.My.MySettings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
7
[NET2]ArinLog/My Project/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
20
[NET2]ArinSetting/ArinSetting.sln
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ArinSetting", "ArinSetting.vbproj", "{631388D0-FADF-4C02-9536-A33E1C40F91D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{631388D0-FADF-4C02-9536-A33E1C40F91D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
[NET2]ArinSetting/ArinSetting.suo
Normal file
107
[NET2]ArinSetting/ArinSetting.vbproj
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>
|
||||
</SchemaVersion>
|
||||
<ProjectGuid>{631388D0-FADF-4C02-9536-A33E1C40F91D}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>ArinSetting</RootNamespace>
|
||||
<AssemblyName>ArinSetting</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>ArinSetting.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>ArinSetting.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Class1.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
175
[NET2]ArinSetting/Class1.vb
Normal file
@@ -0,0 +1,175 @@
|
||||
Imports System.Xml
|
||||
|
||||
Public Class ArinSetting
|
||||
|
||||
Private File As String
|
||||
Private vDocu As XmlDocument = Nothing
|
||||
Private nsmgr As XmlNamespaceManager
|
||||
Public Root As XmlElement
|
||||
|
||||
Public ReadOnly Property Docu() As XmlDocument
|
||||
Get
|
||||
Return Me.vDocu
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub New(ByVal Filename As String)
|
||||
Me.File = Filename
|
||||
If Exist() Then '//파일이 존재하면 도큐먼트반환
|
||||
Me.vDocu = New XmlDocument
|
||||
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
|
||||
nsmgr.AddNamespace("x", "http://tindevil.com")
|
||||
Try
|
||||
Me.vDocu.Load(Filename)
|
||||
Root = vDocu.DocumentElement
|
||||
Catch ex As Exception
|
||||
Me.vDocu = Nothing
|
||||
Me.Root = Nothing
|
||||
End Try
|
||||
Autoflush = False
|
||||
Else
|
||||
'Dim m As String = "지정된 설정파일(" + Filename + ") 이 없으므로 새로 생성합니다"
|
||||
'MsgBox(m, MsgBoxStyle.Information, "확인")
|
||||
CreateFile()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' '파일명이 없는경우 현재 실행폴더에 Setting.xml 이 작성됩니다"
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub New()
|
||||
Me.New(My.Application.Info.DirectoryPath & "\Setting.xml")
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal docu As Xml.XmlDocument)
|
||||
Me.vDocu = docu
|
||||
Me.File = My.Application.Info.DirectoryPath & "\temp.xml"
|
||||
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
|
||||
nsmgr.AddNamespace("x", "http://tindevil.com")
|
||||
Root = vDocu.DocumentElement
|
||||
Autoflush = False
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 파일존재여부
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function Exist() As Boolean
|
||||
If Not vDocu Is Nothing Then Return True
|
||||
Return System.IO.File.Exists(Me.File)
|
||||
End Function
|
||||
|
||||
Public Sub CreateFile()
|
||||
'//주어진파일명으로 기본파일을 생성한다.
|
||||
Dim NewXml As New System.Text.StringBuilder
|
||||
NewXml.AppendLine("<?xml version='1.0' encoding='KSC5601'?>")
|
||||
NewXml.AppendLine("<tindevil xmlns='http://tindevil.com'> ")
|
||||
NewXml.AppendLine("</tindevil>")
|
||||
If System.IO.File.Exists(Me.File) Then System.IO.File.Delete(Me.File)
|
||||
My.Computer.FileSystem.WriteAllText(Me.File, NewXml.ToString.Replace("'", Chr(&H22)), False)
|
||||
Me.vDocu = New XmlDocument
|
||||
Me.vDocu.Load(Me.File)
|
||||
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
|
||||
nsmgr.AddNamespace("x", "http://tindevil.com")
|
||||
Root = vDocu.DocumentElement
|
||||
End Sub
|
||||
|
||||
Public Function Read(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As String = "", Optional ByVal Nullvalue As String = "") As String '//변수초기화
|
||||
'//파일이없을경우 빈값을 반환합니다.
|
||||
If Exist() = False Then Return ""
|
||||
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
|
||||
If L Is Nothing Then Return ""
|
||||
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
|
||||
If C Is Nothing Then Return ""
|
||||
Return C.InnerText
|
||||
End Function
|
||||
|
||||
Public Function Get_NameSpace() As XmlNamespaceManager
|
||||
Return Me.nsmgr
|
||||
End Function
|
||||
Public Function NS() As XmlNamespaceManager
|
||||
Return Me.nsmgr
|
||||
End Function
|
||||
|
||||
Public Function CreateElement(ByVal name As String) As XmlElement
|
||||
Return Me.Docu.CreateElement(name, Me.NS.DefaultNamespace)
|
||||
End Function
|
||||
Public Function GetNode(ByVal appkey As String) As XmlElement
|
||||
'//파일이없을경우 빈값을 반환합니다.
|
||||
If Docu Is Nothing Then Return Nothing
|
||||
Return Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
|
||||
End Function
|
||||
Public Function GetNodes(ByVal appkey As String) As Xml.XmlNodeList
|
||||
'//파일이없을경우 빈값을 반환합니다.
|
||||
If Docu Is Nothing Then Return Nothing
|
||||
Dim L As XmlNodeList = Me.Root.SelectNodes(appkey, nsmgr) '//appkey를 먼저 조회한다.
|
||||
Return L
|
||||
End Function
|
||||
|
||||
Private _autoflush As Boolean = True
|
||||
Property Autoflush As Boolean
|
||||
Get
|
||||
Return _autoflush
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
_autoflush = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public WriteOnly Property [Set](subkey As String) As String
|
||||
Set(value As String)
|
||||
Data(subkey) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Public Property Data(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As Object = "") As String
|
||||
Get
|
||||
'//파일이없을경우 빈값을 반환합니다.
|
||||
If Exist() = False Then Return defaltvalue
|
||||
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
|
||||
If L Is Nothing Then Return defaltvalue
|
||||
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
|
||||
If C Is Nothing Then Return defaltvalue
|
||||
Return C.InnerText
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
'//파일이없을경우 빈값을 반환합니다.
|
||||
If Exist() = False Then Return
|
||||
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
|
||||
If L Is Nothing Then '//만들어야한다.
|
||||
L = Me.Docu.CreateElement(appkey)
|
||||
Me.Root.AppendChild(L)
|
||||
End If
|
||||
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
|
||||
If C Is Nothing Then '//만들어야한다.
|
||||
C = Me.Docu.CreateElement(subkey)
|
||||
C.InnerText = value
|
||||
L.AppendChild(C)
|
||||
Else
|
||||
C.InnerText = value
|
||||
End If
|
||||
If Autoflush Then Me.Docu.Save(Me.File)
|
||||
'MsgBox(value)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property Data(ByVal subkey As String) As String
|
||||
Get
|
||||
Return Data("userdata", subkey)
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
Data("userdata", subkey) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub Save()
|
||||
Me.Docu.Save(Me.File)
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
13
[NET2]ArinSetting/My Project/Application.Designer.vb
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
10
[NET2]ArinSetting/My Project/Application.myapp
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<MySubMain>false</MySubMain>
|
||||
<SingleInstance>false</SingleInstance>
|
||||
<ShutdownMode>0</ShutdownMode>
|
||||
<EnableVisualStyles>true</EnableVisualStyles>
|
||||
<AuthenticationMode>0</AuthenticationMode>
|
||||
<ApplicationType>1</ApplicationType>
|
||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||
</MyApplicationData>
|
||||
35
[NET2]ArinSetting/My Project/AssemblyInfo.vb
Normal file
@@ -0,0 +1,35 @@
|
||||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
|
||||
' 어셈블리와 관련된 정보를 수정하려면
|
||||
' 이 특성 값을 변경하십시오.
|
||||
|
||||
' 어셈블리 특성 값을 검토합니다.
|
||||
|
||||
<Assembly: AssemblyTitle("ArinSetting")>
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("ArinSetting")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2014")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
'이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
<Assembly: Guid("519c93b9-baa3-4298-8b19-f2cbecbb79d1")>
|
||||
|
||||
' 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
'
|
||||
' 주 버전
|
||||
' 부 버전
|
||||
' 빌드 번호
|
||||
' 수정 버전
|
||||
'
|
||||
' 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
|
||||
' 지정되도록 할 수 있습니다.
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
63
[NET2]ArinSetting/My Project/Resources.Designer.vb
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||
'클래스에서 자동으로 생성되었습니다.
|
||||
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||
'''<summary>
|
||||
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ArinSetting.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture
|
||||
''' 속성을 재정의합니다.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
117
[NET2]ArinSetting/My Project/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
73
[NET2]ArinSetting/My Project/Settings.Designer.vb
generated
Normal file
@@ -0,0 +1,73 @@
|
||||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
' 런타임 버전:4.0.30319.42000
|
||||
'
|
||||
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
' 이러한 변경 내용이 손실됩니다.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||
|
||||
#Region "My.Settings 자동 저장 기능"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.ArinSetting.My.MySettings
|
||||
Get
|
||||
Return Global.ArinSetting.My.MySettings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
7
[NET2]ArinSetting/My Project/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
69
ribbonMenu_160717.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<ribbon>
|
||||
<toolTipSettings />
|
||||
<appMenu id="RibbonApplicationMenu1" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAdwQAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAEGUlEQVRYR+2Ve2xTZRjGz5RLMGOwQXUoRhND1OBmmDEhgHSwEpcoCQFBN9mFoINgxmihE9bWzo3CZJqV28ZIlrENNledGmm8hAw0+9MYdSNDRp2ysKDLRN16vz2+79manJ7u4jz1DxLf5Nf2fOfr9z7P+37fOcJdGSq1LfGJnEt7ntzeeXF53uWhtIIrQ2mFX9nTcu0auj2LSBAn/hfxyFZ76lN5l1o3ma6iuHYQVrsPJz7zwtg0jBfLuvH0jsvNKpU6kaYmPPta1/J1+h9Av2cT9/D/FYbt3se22RsKq3/CYdsoys/fgaFpCIZzv8FiG0FDZxj6hl+RsbOzLWPHlarn9d8Pv1rZywKSibniEkpiSbZtTXp+J3T1t6De/QWWaGqxIrcjpK27iZJT/TC3DIsi9tYNel+vuYn6L/0YF/AgMU9cREmkaNqPbTL24Lldn9+ev+KATpizeFli+htbUtcd79bVDaDk9M8wNQ+JIlq+hvg9LmApoVxAsub9a1nab5CUUWamy4eJFGK+ICSl3L/+ZO/+swMhbe0vKL/wO2ou+kQ02m/jK2BlQRtmL8xIo8tFxBwiQVj60rzUTKuZ75WeHRDREywkPb8rfgJSstre5STC3AWP0qW403k8eVXNyzxuOjcIY+MtGCTEVUCyumGNKrvDJyx4nAXcNzYqCAtXW28vWnsSi9WnoMo8jQeyapGadQYPbagXoSnxESAIRXye2bn8WPE4j/Fu52RyVMTUx3DPiX7ssjqw8z0HCqtvYHtVH3Is17G14kdsNl/DRlMvXjD0IvvgVWwo7cH6Az3I1PVgrbabHbK7qeDkUz+I9tIRqvrEhyMf+XC4w4vKD72osHlQ3u7GW21umFrdMJ53oazFidLGERxsHkVpkxPP7P6OBUzvcLoosvbj6McswAsLC/jAgwpKbiZMJMDY6oLhgguHSADzZrQALjM7/fdRcMyB/HccyKtyUPlvIPcoteBIH16x9GFb5fVJkQrYWFCCfwrNj27L8cZPEQ4DIfoIhcIIMsEwAkS7vQv+QAg+fwhexheCxxeE2xtETnG5tAK8GZMIfkZMB8/j+WPBAjg5LyjFHxgTwMnl91yxAtgRO4tsvqmIrYDcuZ8h5yxA7pyTuzzRAiYq9WTQ/FgBnGimyCqgrAXsnp2L7rnn433nRBHnonty7vQEMOoOxLcFnJgXlMKlZwGRDSdFLmCiUk8GzZ9YgNQ5J/dQ3yMCxpwHxcTMiCumAspaEOnrTJAJUNYCqWvpbudETonrvxinH3+O+uPbAk7OC0rhkrOASL+l/CETQChrwUTnnJ2zgCjnBCe/MxIjQFkL9JYzKDpUjUKdBXn7KpFb/HaU48mgv0cEKApWxK9VXmymKH8dU8ykfHKiy/l/3D0hCH8DqK9Jd786aT4AAAAASUVORK5CYIIL" />
|
||||
<qat id="RibbonQat1" />
|
||||
<topToolBar id="RibbonTopToolBar1" />
|
||||
<configToolBar id="RibbonConfigToolBar1" />
|
||||
<bottomToolBar id="RibbonBottomToolBar1" />
|
||||
<qatItems />
|
||||
<contextMenuItems />
|
||||
<tabs>
|
||||
<tab id="RibbonTab1" text="메뉴">
|
||||
<group id="RibbonGroup4" text="매크로">
|
||||
<button id="RibbonButton8" supportedGroupSizing="TextAlwaysVisible" text="신규" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA4gEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABhElEQVQ4T6WSIW8DMQyF81P6Ew4OBhYGHgwsDCwMLAw8GHgwsDBwpFLgYOCkkcAx79mX6yLtNFJLT+qpfl+sZ6uXK9wK+V2+68rK5Fiu67LJdnW7UmxMK1G4Nfqv2jeRmWGek6jbfwHeV2lM9yzKeRC+W2ukTaZpsgCNAIzMAHfdAH8KL8NL9RMAGD36jIkHAFek33tPcU14xVCMUVRrFYCx+QCAoEbAXmzkyvdAKRqqH4VcD9rMA4CTZoC9DAAO7DxRCjAWR61uEM4mLhW9IwArYkBcmkBYHGxc8wZZDJVsBRK8RqiFQhjW+ARgYlYIjQJgaW3SfAjBJN0OAI5iB7DZWCeyzgMUMTYCPYB0u1J8VbvZ45jM7PhP0hqG2iT9PEDquwMUm3N2g1isJi5YH8x8TAyYtMZdBKxvA8TEU24Qf/NUbo5qAIghDJDXYT6dE50mPVxjofzOwToYGYLeN0wCY7la+a0ejy80IHFcGR/IU+dAepf2ZG3AI0kmYaOYXy+lfgBXaEhab2/C/gAAAABJRU5ErkJgggs=" />
|
||||
<button id="RibbonButton12" text="저장" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAyQEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABa0lEQVQ4T62SoXLDMBBE8wn9hHyCYaBgoKChYIoqGCgYaBgoGCgYKFhWw0LBQsGw6+7ZSRQ3U9Dpzex4xvI+3e159S+VzlVUadapSozQscgwzDoUCQHaj+IpP8psBwCmnAUfyq9VLyK2z+L6pJrtDeBQ509/Fs21VjE2S9c5gBpARMsEsMVndTWXryqdTRijiLWxAWBeAjwOltWax08AtknnfwQgLAXgoK2lOY9F1iaK2y0ATJkAHlzrmTm/F3nZAOCy2O3QALCifBasEhAHOj9A2hoYZmbbvPlm5lkLYHgpAQDFyHVWCdjItPeio3l0dzVbQB8B+DHS6W62vX+U8xgvNGbIhDuAf1Z7M014LZ0xOv9Yqrh9mIxqjgsAWoxH/Adz2wTQ7PeDFJgZpA8D3tEYp+emBWA+vR3mNQPrDALNqpxHpM+1WTWqEKbZaJdTvb1+WLdjQEn3exOCYlgqtMxbJ6HDFvD3Wq2+AdBROwy2G7LMAAAAAElFTkSuQmCCCw==" />
|
||||
<button id="RibbonButton13" text="삭제" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAUgIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB9ElEQVQ4T62TT0gUURzHX1nhrDp/3rirgrbu+ofaanF33tvZClzbwEPqQZYOXjzswegSnbt36hQeukTHLkHiJYIE70FY5hIkBBEE3STNw7yZ36/3Zp+HdRWD/MAc3u/7nd+8358hpwJyayLynDUouVUk5KwO/xt4l3SA59yDpRkMFm8L4HRexbTcAlbIOWRWVnoe6FAzCIzWI07fQH0ag3o1lOdHh5NgJd2pbhgsVkXE7Oc63ASKvQNQouU4SY0hLNzEiDurkO/rivXyoBFVMqtBbUJIzxPMJbvjFw+DOXJBfv1hMJ0RKpE0vwTfzstkyzrpMnqOpe1HI5t4Bnx6OSzSjbik2VwQ3Mnvyia/VjfRtpNBz50KagUBc9dQFOk3KJtUSyeDvjUccropOIX9go27BROF53zV8vGoHYCCnRae1RB+f/jzSs8acJep5v66aiJw+74qUdvbQZ7sD/3Uxt6tYWyMJrbf9XVMqUmoJ2L02ce0ITazBtP2VtSco3Lqlbju7n0YMn6/v2jUtKR3gJo/xhPbjWzn2xWHDLU1FEr2zL6fwk9ZAz9nEisHO3BAs7zk6Prg+T9bY0apZeXV/OWMH3+/1I1bI8YX4L3jLQaN2s6dvPkCmMvbdLmNxYg5T2WjJuGG23Ncs+L/wRtI6OP/QshfG+jStAAx2gYAAAAASUVORK5CYIIL" />
|
||||
</group>
|
||||
<group id="RibbonGroup1" text="작업">
|
||||
<button id="bt_run" text="작업실행" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAYQIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACA0lEQVQ4T6WS60uTYRjG94+ElodKEUFRMQ+IKJ5A6YOIRmCsRulgaIJDGSoDzQhFSRQRnRhExL4MMjvQyRObMmcNzyJTxBPaYAQi2eV73TAfBMPIF25eeJ7n+t3XfdDhkp8AmocWz0TTwDzMPV6YOmZheOpGWdMUisyTyK4aQ1rFZ6QYRpCsd5wF/D7+89c4PDqGP3CE3Z+H8G3/wtJGADdzGv8N4Fn2S+ZM0ygcY1sitg37cCPbcjGAmSl2zR2g/dWy2Caw17GG61n1CsCazxPTNjNTnFczjqRyOya9++h4vaIB6hSADTtPzJppm5kppvWvM3viODKzVgHY7aCYFnMfj0s4NeusmWfMTPF71w4sfXOIyKhWAI6K4gVfQIRD79Zh/7KJ6IIWtGn22TDGc/sq3kxsoabrB8LTTQrAOVNc0uAS8cySH4Nvfajt9iK+1CbWX37cgE6nk/vKNg/CUo0KwCW5a53GC+2Sdvm32hZwv9UtTYy93YkWre6qzu8C0T9x41rKIwXgqJgxKOZjY7sHhRr41oNhAYQm6ZFu/IbUhx8EcjXZoABczxHntohZM2sstji180+IK+lHVJ5V67pZbMcUPpMdIPAUwN2mZQbrY0k8ozg6v1nEHFvwfyXuDkIS7ykA58zdZqdJ55LwIUfFbjMza6ZtZqY4JKFcAf7/A04A0AEgNTFacM8AAAAASUVORK5CYIIL" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAACwUAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAErUlEQVRYR+2Ve0yVZRzH+Uvl4rUYOsPtHLkcD3AIEDiRualFN2Nqy3lBBUuYwEyaiBwuEsnhIhdJmEzMnLFczC60LFAkJSzTgqw/KueqNZFx63CTwznH9/32fV7PDFMGczvHrfXbvnvf845zPp/f73meF5f/60Hrypcq/HBWhbYzatgfObfam1Tov5YE09VEfPv5QudLfNeoxvANA5OJwT924quPfZ0rcZFdm/vyYenfD3PvPkXibJ2f8yQu1PtgtL8YtpEq2G4etEu8job3/J0j0fKRLyyDpZAshyHZDlOijBLZlNiO+hqt4yWaOW7rcDnh1YAsJN6mRD4ldlEiDnWVAY6VOP2+P2zmMsi3KgFUUULIGGEbzoS5JxmDv69DbUnQ5CXam1Vob1Lj+9NqXG5YiIunfPDNZz5orfdFC3f4uZN+aP7AD2dO+KOxVoMvjmsgWUshS+UUKGWKACmPzwycxA5OYgslXsLR/ODJSYgXijhW5j4jLAOl/8p+ppBrXsCxF3DjFRJUxO4FtIDwfZzAXsbAz2mcRAonEcdJrKHEChzKCZlY4lKDWoGLXS1Zj9jDtbUeYiq52Sr4w2LkJQpYlowEvsXkMpnMbmYnk0KJbfzOJkqsoUQ0JfSo2DOBhBi36FaAgWPMUaaG4SaDWOcDTAkBhbyO6VgBpzIEI4GJ530sJdbyt2IosQIjXXoMXAtESWrY+BKtnwiBYqVjyEJCgLm5xoKVjgkGwRgDlgmW7WB5LbOaWclJRUMaXQqLKQxDfy5C30/eMCaH31/i/Eme6wEjBSrsYF5l++YSHcPesQIWo07mvQDHMRuZf8CQn2WWUWAJBcIpEEgBNQXm4kbrLLyZEHGvRBN3uGUglwICKMBi1PaOlVGn8bMdLCcyouOx4Bc59mhelzNPAbciuW9CuARaLoGKSzAP3W2z0XHeAzlbI+8VaKz1V14itpEsfjGHyWB2USiV1xQmgfdbIds2M+vZ3SsErroNlgV42W2wHEl4KP8+ELYhP5i7F2DwNy/0XpmNzgvuyL4fXNSpYxoMd7zKk7Cd/2CSmG1MPBPLrGNe5oRWwTq0kpIvEPAcJZ6mBMESwRLBUhjhOopq2DlPVfdjhHsSPhOdX7shO34cuKhPj2hh+jWGR2Y110skhnmeeYZZzizF8PUluNkZhdG+JwmIokQUJexgSUe4ls982PkCwucSPofw6YS7IitOPz5c1IfVWnRdiuA6RaKnPYJZzDzO6JgARoPeHzUw/byI73otRnt1fOMFQ7YGEa4l3JdwFeHzCfckfCbh7oRPRebmCeCi6g4G4MSBQNSWBeF4cRDeLdThnXwdavKCUb03GFVZIag0hKAiPRTlaaEoeSMM1kEB9aWAildvwr0If4Tw6YS7Ej4Fhk2TgD9IFe1YzD3hDck8n/B5hHvyrTeLcA/CpynwDEfBRRmTwjH6lxf3wqOEz2HnMwh3uwPfE/uE4+Ci8hLDlY4tphmEe9wN3+hguKjc1yJ4Ktx5dN3vgqdvcAJclDjT/VfdYPrF9Q5893onwUUZtujR0zYNXZen8g3nZLioDG6yjpYpuH7uIcBFpW/QK+CHAv8PlYvL34gk5qqBDqaVAAAAAElFTkSuQmCCCw==" />
|
||||
<separator id="RibbonSeparator5" />
|
||||
<checkBox id="chkReplay" toolTip="동일한 기존내역이 존재할 경우 해당 정보를 이용합니다." text="이어하기" />
|
||||
<checkBox id="chkAutoRun" toolTip="목록수집이 완료된 후 자동으로 실행합니다." text="자동실행" />
|
||||
<separator id="RibbonSeparator3" />
|
||||
<toggleButton id="btCopy" supportedGroupSizing="TextAlwaysVisible" text="복사" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAnAEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABPklEQVQ4T72RoXLDMBBE/Sn+g/gTDD1FZi2LWQsNCwXLIugywbAImlXQUNCsgoWCZdu7kxPH7iQGnenOLNHcvb07ZX+WdQHJPrn3MNbj8H6qp5L74ua1jHVolMHuYV9MZbfFqWvpo4MbPJpWb0N4ZJYbAZocPkRoY2GHSCslm57ebPL+8FlOrUk87kXfQIxA+KJGAqyljhHFi8Pu+WOGGBqXZQYanZKUDWhNgKHktdougYsni93jKUF4X1aU9CjpvIbp03G1TfZjRKODNLPz2iABaF9uPieLO0+HXP4O1zDceYLTsZYAmpZT/RiogDwEKAKxeO+2C5JeKy8WQHUFKKrml1s9f+85gNPlV+jweaUT4JaatwS4Tr5MQHfbBNSvTvbmcWc7aebD5+UGoGzd4uJiShVTc16q+4B/Upb9AFGm2tYvvAfhAAAAAElFTkSuQmCCCw==" />
|
||||
<toggleButton id="btDel" text="삭제" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAUgIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAB9ElEQVQ4T62TT0gUURzHX1nhrDp/3rirgrbu+ofaanF33tvZClzbwEPqQZYOXjzswegSnbt36hQeukTHLkHiJYIE70FY5hIkBBEE3STNw7yZ36/3Zp+HdRWD/MAc3u/7nd+8358hpwJyayLynDUouVUk5KwO/xt4l3SA59yDpRkMFm8L4HRexbTcAlbIOWRWVnoe6FAzCIzWI07fQH0ag3o1lOdHh5NgJd2pbhgsVkXE7Oc63ASKvQNQouU4SY0hLNzEiDurkO/rivXyoBFVMqtBbUJIzxPMJbvjFw+DOXJBfv1hMJ0RKpE0vwTfzstkyzrpMnqOpe1HI5t4Bnx6OSzSjbik2VwQ3Mnvyia/VjfRtpNBz50KagUBc9dQFOk3KJtUSyeDvjUccropOIX9go27BROF53zV8vGoHYCCnRae1RB+f/jzSs8acJep5v66aiJw+74qUdvbQZ7sD/3Uxt6tYWyMJrbf9XVMqUmoJ2L02ce0ITazBtP2VtSco3Lqlbju7n0YMn6/v2jUtKR3gJo/xhPbjWzn2xWHDLU1FEr2zL6fwk9ZAz9nEisHO3BAs7zk6Prg+T9bY0apZeXV/OWMH3+/1I1bI8YX4L3jLQaN2s6dvPkCmMvbdLmNxYg5T2WjJuGG23Ncs+L/wRtI6OP/QshfG+jStAAx2gYAAAAASUVORK5CYIIL" />
|
||||
<toggleButton id="btMove" text="이동" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAkQEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABM0lEQVQ4T62SMW6DQBBFfYTcIFwAdi+Ady8QaU5gtohMCZ1TUqakdLmlS26QlC4pXW6ZkhtM5sNasRUQjpQvfSGx8x8zs2z+TfqY8JpNpXQs/y0UdINnH1pughMT12di11nWzRi2sXReAPiv+id8sUwn/VgYAqANAEg4WHa9ZTu1vR6GALh+eTQgF32FJLFsWQBgZrTtenEE4fkQBAB3mhaGgDv/EQJAXBip6jlBgD4nyGgBbousM+UCBIDbhd1BMJKY3jWbvapjyb3m2jOvSueHdHj5SAcCQPaz3WV9PF6XKdSTqTJPRwlLJ+Q15/s04H0sWZcUt9RIuJtGyKs0xKN1yVg1tVPr6CIv00GALh4vyxxUMrb+JsFafibxGF5a4K1MYVpcJ5zvZN7SeHQyf32bzTdUROdlC1YY6wAAAABJRU5ErkJgggs=" />
|
||||
</group>
|
||||
<group id="RibbonGroup7" text="원본목록">
|
||||
<button id="btOpenFile" supportedGroupSizing="LargeImageOnly" text="불러오기" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA3QEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABf0lEQVQ4T72RIVPDMBTH+wmgEgVxoFglAlE5t0gMtzqmWOVQixxqccw1jjkiJysnI5GVyHyDP+8lGXQw7hAc7+53l0vz+7/XJPuXmj81pdIGakGsLObLRqVPv6tqpjG6W1a8ns6bnMOmj43k/exlvZR2rfEV2tfBPlDTh0bKiQaT8eHOGXhvA/AGeDOwhkKe5wdH3ckxgA56kvpy4LWGoW9mpSJaQTOLGiknVghgYU9WRHWQbwHcJQQkWqsDH/dhVKA/SZhmkabhTd/pIHdbOkwSOprgJ+jXGLeWmI5H5jOAYLnd0Doc6o3uGAlsJfymRGcK3N9eewooMh7H0z/vdXcpIIgEi20ZZG8LqInAeHgUnzkEuCi7NnXviWhjVxb9uoBb5KiGAoPzYxEC+DJc2++exF3XJHZGwOk8dL+8OLVB5uKb5Kd0li5GZx+0DHWzKmJmAroWsfvgTCY9BmhVQc2IWqKuJKqbEnJYorwqUBQChRAQJznyPIcgkvoXlWXvroTl2zJE2XcAAAAASUVORK5CYIIL" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHAYAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAFvklEQVRYR+2We1BUdRTH6UWFlBVqRdHk6NRMzuTY4y+nmnHyOSrOIvEwBQIbdjQhAWF5g0A8i8nIDBxEBEQFQx6SCQ4poiIYiCIIPmDxAcZLRFh299v3t3cXdwHHaYamfzwznzn3d+69v3N+53fO/V2zx/JYJlNWuYV8Zuce3rh6fQRkHmGXVqwNcKH5afKE7oH/UmTuIfOF0+Vr/DyWOnp7LnHwksvcQppsXQK/521zV++os9QimCfF85Mq79mHmcs8QvIW2cs/5PAlPVMX2nkulbmHa1au9Y+RMSu0vUDMyXi5Vb5tX3tpIiQS9MSh/XAslIe/IzG4nB+p4KMPS6mwW+h5hjxFzFe5Bf8igli2LkwE8Cp5nphKa55iQ0d5EtRdpUD/MVIB3CX9fwJ9HPeWQHXjAG5XJKMuKzCBrzxLxgYhUmuS4i/kEdW27uFYujYMnzvrAniDjA/galEMHRQCPQVA917qA3T6G6+pe3KAOxlA1y6o2rJw42ii9kSalytfE6l8VHGJgF4kYuXC+XQigjeVK4UxXG05nQnndNiTKznvpu7KIunA7VTgVhpG2jPRezIJHSUREsXhJEyHsigYyvwAXM/zR0eBH66W+lRzeksyhYiVC+fji7D1UDQDKKPjfVIG/tZzRzjn6m/voPNtwI0kkgh0bqctBbiZDO3NJGiUcVBdj8XIlWgMtWzF/aYIDDYE40S8o0i7FZm48AzSUhAlBWBw3C3Snk120VkaHf0EKOm4nZlqjwDaQqgDgGt+ULX4kG8x1LQRg42kQY6+Ojl6a77G8RTHPk4/8b4bS9PBrSy2o3QunGZBK1YrHDP1Q40/6DtDz+F4InVHOztDWRLNDomCsngriXywLdwKY67keONihifqtzn0NG9fNWhvby+2RtqOxgORLLrf6TyTqU6BpiMBPfXBuFXljTvHk6Fp20N7/qTQdkwxUBq1aGjx4sVv0/VzugAu7Gdae9mCXLGW+zrQFInOMz5oLfRi6jOgaf0RqvOKSeFItK0mNdThh7lz3xUBiG+Gmdn53HApA0y7lkXWeTYAbeWbMVAbx6LLxUhD0IST/Vva/vhmJCfE+eaSBfPenzlzhmhN8cEyM6vPCWMNMAOs9vuXI3CtwheXCn2Ajiyom+MxXB8AVb3/qJauDdpwz9RmuFbVSfahui3ID1mlDZIvd7C2ftmGbkVrSjVwLiuUlV/CAH5FZ/UWVO31Y6Wz7xnAMF8cqvMbZfgvYjwWmjbj+6N2I12z20WdEexUNdvGZhZdTiXiIyVJTWYwA8jH8NVEtJT5oDaPLcbUqy6E4f65zTqGjDDYDHbjsY5a03FP1UZttmKF2tXu008sLCxeo0tRfA++omczGEDXbnTV+HP1vtC2p0NzLRX3arwwqGOTXktIdmEztT+MkkSZekeoQ+bs2dPF6sWnWRxUD+R0ehC0ndloLfPFhcIgfnj2M3If3KvegIHqjcSgpWvJLmkJ42dMbcoyN3WG38o+u5XzPpoxY4oovPFnwamdgei/vBNnclh4yj1QNSfh7mlPDJyW6/RYBsbZjJ+T6+/L0X/KE/uDlmmSFXaBH8yxmWVlZSX+B8afBVU7FWivisLFolC24T7dRH1V69FvzKkxY2OM7une048vHXRS7/KxbZ7/8aw5lpaW0+hKaruxUpmqQMMhBdQ86QbrgtF38iv0VhLqPmoxNjBqM0bYddfuo7bu467Y7btEs95h4SK6eJ2I82Di47ti+yacTPeG+noaeird0HvCVY+LTvfoGWvvrTS1Sc9I92qzZJqffe3zOP1bRLSdaeEZS1miY05e7DroiHJBXrQLciO/RHaEE4rinVGc7EicUBzniEOJa2hzRAHJF8TymnZhK05wRnmKI44kr0acx4KEmdbT3uH0jz6OKWJvXiHi6HxzkrAmYk7R8+MLb4yIvRFBiH2aLIRjMeejftsey/8pZmb/APwMEeVH0P5eAAAAAElFTkSuQmCCCw==" />
|
||||
<button id="btMakeNewList" text="직접작성" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA8QEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABk0lEQVQ4T5WRW0vCYBjH9zX6HH2MvobQRRdRkERdRAcKLzpQlNlVFmaZUIZZpCKhFqwo8tBgiyxcWFokzvMOT+/7btPAl1F/eG42fv/DxpjyRzNefBFWUAJJXg4msspJLKsexzLqYSSt+cIp7eDCuNBt2sC6Cl3yIlCkagCyokGzrUGtqUKlpsKSOwz9A0NgoLp2Q+yjwXSkapoBqzpcV+BbknsNQByFopeB2VUvAc8TTxCI8eA55cDlf4DFnTuY2WTBvpKEUrnda3A23wcuX5zAWN1kszZKrsjwWZah8EUxwFrbi+owGm3VQCy26BNKaMKEww1tWd9cN5MlhdTGyXkEvxSa9AkLW8FObasGgtigT5heP+puNr62ntwitXGy8NYA7rVOn/CBJgxPOQls1SD9XKNPsDs8RrK5WU/OvaNkVBsnY/iepxhgjcxto1+FYdmyActJ9AnFfQZsY8udr53Dm38nC1UCX2Ur9AmDk05SO1+iwHwVbrgqXGckiKcoBli28Q3y4q/XY4CFH/7nGIZhfgBVaKx2f726SwAAAABJRU5ErkJgggs=" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA3gcAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAHgElEQVRYR72XeVCU5x3HmUxTxEStMSY2zRiiplMnsaaB0MZJip16gygkwSMoabUkGtAYQGs0HhgVEAgBCV4TDcq1uALLsQc37HLvIpcgBQFFBQRB5dxl+fb5PcsKC6+ZtH/4znznnV3Y9/P9fp/f88y8Zv/H9YzPftcLoce3guR32A1+h9wQ5OMKzx1bOg54OmsOejlrTuyzF/nvtTt71GvZ2W92rHV3ktjgwyQb0N1J8i7Yc8zpWfyJv/RaMW+eudWCOSfqVVv1fdfd0Vvugo78tWjLXYOWdDvcTLNHk3w1GqSrUSZ2hCrKCZEBDgj3Wat3TLCGd8Un2FO5EXPDLMjATCYy8cuuFTbzpjouXiA6ecy+tv/WYfRWfoIWuS3uKpagK88ebZn2aM1xwO0sMrMat9JWoVG6HI2yFaiMsYKj2Aq7yjbAk2lOKDfwKpMFf/jPXe7rbLyPfGaNyKNv4vtDH/W1FW4ebC9cj5hvZwPN/8bgf3ajR70BrdmOaMl04C00y1ehWbaSwVeiPNoamUEzsT5mIb4qWo8v2W8tA/8HA7YLX/vNNqfXbx3xsu/rrvPGI7ULIva9xIDLoK92RWOSLRpTFnMopb+pMCxFM7tXx72HvLDZkPlOh9PFBdiR/zHX7/wnjRrwPN2EXeFN2PlDIzzCbuCLk0yhN7D7XBPOpLRBpWlig/YliuM/he66F0QHZyE9/I8Yrt6IxuQPUJtgg+GWr9Gu/JjVbs/hNxWrOFwZ/jrSA2Ygeu9zWH5+IdxzPuJ69dg4A0HJOgQl6RAo0SFAokVIqhZReTqU1GkReHQPRKc/w/CN/Ujxt4Sn8zToqzaiRmyNsF3TMVS3Hf0aFzQkL+XpqfryKCuUnH8Lcr/pSPF5HmfcLbDk3Ftwy3TC9gxH/PbbMQZ2hDVyA4FkIEmL4BQtfszUIad6CBfOhSHkuAeHtxb+E/s3T0Vi8J/QmWMLv8+noSJ2EbqVDqiLt0Xl5UXQ1u9EXfJiqE7NRUbQy5AcnopLXpPh6zoJf/thPrZI1+BfqQ54+ZsxBtyCb4zADS2EybRILB5CQpIMxw+YwsWxP2G3yyuI2P8C4o6/gYeq5chiy3HK60UG98R9pT3UF+ZDGjALMex/gt0m49imSfBea4H3Q+bDVWLPNWOf+agBV/96bParxybfenx6op7NQyPOJl6Hn48B3lXixuGx4mRIC+4gwN8Xm5dOQ3qIJZfftunoq/kCrRnLUHDm9/DbOgVblpjD0+k5+P7DaGASFgW+AVexHTYxzfAeY+B0TDrGXy3NDQg66IyE797j8GuVauiHhzGkH4aeKUsmxk4Xa6z/qwU3USt6B6mBlti1xhwr334WFaUqHNr+Ppz+/CzsrF6C+NIZvHtkDtZdXIp1EcswxWOMgVPjDDAOh1RpcqAuymBmrhvgQ8PQcen5PVuRCOe/z8V3HjPx495Z+HrjC9yE3V9ewZ3btzGo1eNeZxf6BnQY1Onx9gFLTN72azy/3aBRA9GjBhjbYGDEREN9PU9tAA9Dyx5ED6N7Q0MDytVKfPCHX+Gd2VOw9cPF2PP5OrS1t6P86lX09A/hUd8QHvbp0MPUNzDElaDII/g8pllM5mbh0WkmcIMBQ9XVVVUT4JRsgOlqWdljM8a/DQwaIMrcXDzo1aG7R4vuR0z8rkMXu391JJQMvMY0lekZs1NRaaitrUVNTQ2uXbuG6upqVDFwZUUFKsrLcZWlKdNooFGrUVpSgpLiYhQVFnIVFxWhlH02fpevVCInOxsZ6elIk8shl0ohS02FNCUFqcnJSJZI4LLTZ7R+usKZgfHJjbUT/HHCkeT9g6Qh5KtU6GVpqWqq+BHTQ5aakhOckncx3X9IGkTng0F0MG3wODTegGIC3DhwZazmsfCBETjVrGJpewXgD1jNCplMEN7RLWQgUiEI1+qGee1CcEqex9a5p38Uzg3QWjNR7ULwe0IGwsjAeDg3oIe6tFQQTslzc3IE4ZSc1lwI3t41IGRAjsrKSlSwoaPtQ9OtYUNH8BI2dDRohQUFKMjP57XThBM8OysLWRkZfODSFQpeu4wNHcFTkpL4wEkSEpAYH494sRhXLl+GWCSaaODkJbngXqfqCW5MztPTmo/UnpWZOZLcsN0ouXHdCT4+OantvkADJy/KBeFUPW0tUzgdLgYDmSy5ELyTVZ/Ekhvh98bAn2BAJgin7Ua1C8EpOdVuOGBM4bTuVLsJfMRAq5CBUGZACP54rwvAKfn4vW6EU/UJV64wAxPhrZ1CBiJkUI875WjoCK7My+PbjU63bLbmVHt6WprJKUcnXApb86TEREhYcoLH08DFxeEyG7q4mBiIoqMRGxWFmMjIiQZCIqQTkvPamfheH5vcuN1YaqG9zmtnusLgxnU3Jr/b2c81wcD3P0kF4VR7LksuBKfaKbkQnMCUXAh+t+NJBgQOGkpOe90EPjLxlJz2utBBQ4qLjRWE3xEyEHwhdSLcuNfZQWMYOlM4JU9ma/6kvS5i624wYAoXNnA+lX/5NGVigF30gkgvivTl05LJiym9ItMHcvS0NPJqbmb2XyFVeQOkdAGwAAAAAElFTkSuQmCCCw==" />
|
||||
</group>
|
||||
<group id="RibbonGroup3" text="대상범위">
|
||||
<textBox id="tb_sttrange" label="시작" textAreaWidth="30" maxLength="200" textAlign="Center" />
|
||||
<textBox id="tb_endrange" supportedGroupSizing="TextAlwaysVisible" label="종료" textAreaWidth="30" maxLength="200" textAlign="Center" />
|
||||
</group>
|
||||
<group id="RibbonGroup6" text="기능">
|
||||
<textBox id="tb_ext" supportedGroupSizing="TextAlwaysVisible" label="확장자" textAreaWidth="56" text="JPG" textAlign="Center" />
|
||||
<button id="RibbonButton11" supportedGroupSizing="LargeImageOnly" text="상태창" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAABwIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABqUlEQVQ4T8WQSUtCURiG/UfRokWbaBXUomW0NiIQiYpoRMowpZEGK9P04hW7mVqaDZTNN8Ki0UUFFlZqZbhKNMvhjXs19JYVQdAH7+Icvud5OYf3J9Mz/YjMSCcf0ab1o0H1AKH8Hvz+O5TLfCgVe1HU6kVBgwf5dbdI4UkBuQ0Qmwko1+IYXY5hYCGKHssrJMYXiKgIGskwatUhCMZDqBwJIrfykCt4j0TvRwvhR/VYsrlM6kOJyIPCVOt7cviOtIBaPEAikfg2L9E4gs9xBJ5i8ASiyCuuSAt0cw52ibTsQGPagoJaY8/D5BL6VFZ0jphZuKlLhzoJgcWtU65AM0Nz2jLzsdl1//pZoDSss8v6uV2QszQmppPnAWIBXQoLxENGFq6XalEtVn8WjOpXOK1MsjU7byLYcz3DuHzCFTBvZaDMP2DgXpUNEvkMRP0GFq7pICAQTUA3f5xd8FPz9lkYq87w1wLCTEM5tQm5zs7CMoUV7YMmNHdTLCxsU6OqVZldwDRfXN7AeX6Nfacb9JEbdscVbPQlzBsuUPZ0sgqYi98mhf/r8HhvY0A4grlhOe4AAAAASUVORK5CYIIL" />
|
||||
<separator id="RibbonSeparator4" />
|
||||
<checkBox id="chk_autorow" text="줄번호자동계산" checked="True" />
|
||||
<checkBox id="chk_subdir" text="하위폴더검색" />
|
||||
<separator id="RibbonSeparator2" />
|
||||
<button id="bT_netdrvconn" supportedGroupSizing="LargeImageOnly" text="NetDrive 연결" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAYQIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACA0lEQVQ4T6WS60uTYRjG94+ElodKEUFRMQ+IKJ5A6YOIRmCsRulgaIJDGSoDzQhFSRQRnRhExL4MMjvQyRObMmcNzyJTxBPaYAQi2eV73TAfBMPIF25eeJ7n+t3XfdDhkp8AmocWz0TTwDzMPV6YOmZheOpGWdMUisyTyK4aQ1rFZ6QYRpCsd5wF/D7+89c4PDqGP3CE3Z+H8G3/wtJGADdzGv8N4Fn2S+ZM0ygcY1sitg37cCPbcjGAmSl2zR2g/dWy2Caw17GG61n1CsCazxPTNjNTnFczjqRyOya9++h4vaIB6hSADTtPzJppm5kppvWvM3viODKzVgHY7aCYFnMfj0s4NeusmWfMTPF71w4sfXOIyKhWAI6K4gVfQIRD79Zh/7KJ6IIWtGn22TDGc/sq3kxsoabrB8LTTQrAOVNc0uAS8cySH4Nvfajt9iK+1CbWX37cgE6nk/vKNg/CUo0KwCW5a53GC+2Sdvm32hZwv9UtTYy93YkWre6qzu8C0T9x41rKIwXgqJgxKOZjY7sHhRr41oNhAYQm6ZFu/IbUhx8EcjXZoABczxHntohZM2sstji180+IK+lHVJ5V67pZbMcUPpMdIPAUwN2mZQbrY0k8ozg6v1nEHFvwfyXuDkIS7ykA58zdZqdJ55LwIUfFbjMza6ZtZqY4JKFcAf7/A04A0AEgNTFacM8AAAAASUVORK5CYIIL" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAawIAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACDUlEQVRYR2MYBaNgFIyCIQl6Zm/8DwI37j77v2zj8f+VnQv+Q6XoAyo750Md8BzsgNTyPvo6IL9hOsQBdyAOiM5to68DUsv6oA549n8p0AFBqXX0dUBMXhvUAcAQ2HT8v2dsGX0dAPIx2AHARLh047H/jmH5tHfAv3//OPevqbhxZFP9//1rqv7vWFLyf8Ps3P/LJqb+n9sa839ydfD/2iSHbyB1UC3Eg5YpKzY2T1p+pr5v2Zm63kVnqnoWnQFmrTOlHXPPlLTMOVPcPONMTv2MJ4c31v///mE1GH97Nef/14dt/79cz/n/8XTg/w8Hzf6XhJv/j8xp+R+e1fQ/NKPhf3Ba/f/AlNr//knV/30TKv97x5WDo8s9uhQ1xIqbp7wFhykBcHB9zf/v71f+//PjLtgB325V//94yuf/+/1G/99tlQY7gBhg5Z+J6oCEoi5wagZhULYCYRgfjDcdA+M9Kyv+f3sxDYJBlp/0/v9hn97/t5sl/r9awwF2wDJgmkDWD2PDzAXJG3skIxwAdBBPQnHnmfDMpjPAxHXGI6b0jFt48RnH0PwzdkHZZyx9s86Y+6YBcfr5rQuL/n+5W/3/8+UUoM99/7/fo/3/7SbR/69Wsf1/vowB7ACQ4cRgqPXEA6BDmddOT/42pzX6f0+R7/+6JAewhegYmAgVoVpGwSgYBaNgFAwFwMAAAMFN3fg8pWO7AAAAAElFTkSuQmCCCw==" />
|
||||
<button id="bt_netdrvdel" supportedGroupSizing="LargeImageOnly" text="NetDrive 제거" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAYQIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACA0lEQVQ4T6WS60uTYRjG94+ElodKEUFRMQ+IKJ5A6YOIRmCsRulgaIJDGSoDzQhFSRQRnRhExL4MMjvQyRObMmcNzyJTxBPaYAQi2eV73TAfBMPIF25eeJ7n+t3XfdDhkp8AmocWz0TTwDzMPV6YOmZheOpGWdMUisyTyK4aQ1rFZ6QYRpCsd5wF/D7+89c4PDqGP3CE3Z+H8G3/wtJGADdzGv8N4Fn2S+ZM0ygcY1sitg37cCPbcjGAmSl2zR2g/dWy2Caw17GG61n1CsCazxPTNjNTnFczjqRyOya9++h4vaIB6hSADTtPzJppm5kppvWvM3viODKzVgHY7aCYFnMfj0s4NeusmWfMTPF71w4sfXOIyKhWAI6K4gVfQIRD79Zh/7KJ6IIWtGn22TDGc/sq3kxsoabrB8LTTQrAOVNc0uAS8cySH4Nvfajt9iK+1CbWX37cgE6nk/vKNg/CUo0KwCW5a53GC+2Sdvm32hZwv9UtTYy93YkWre6qzu8C0T9x41rKIwXgqJgxKOZjY7sHhRr41oNhAYQm6ZFu/IbUhx8EcjXZoABczxHntohZM2sstji180+IK+lHVJ5V67pZbMcUPpMdIPAUwN2mZQbrY0k8ozg6v1nEHFvwfyXuDkIS7ykA58zdZqdJ55LwIUfFbjMza6ZtZqY4JKFcAf7/A04A0AEgNTFacM8AAAAASUVORK5CYIIL" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAvAMAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAADXklEQVRYR+1XbUhTURie+b0+/Cg1M00o2CYlaZhEUMZKMzIVp2kJFkqZomi4qUhpUJCQZJFgZf3QP0EE/uhHP5Io6U/+KulHiH36sfzYnNrc7nb39r53m82vzXs3iMgHHu49Z5z3ed5z3nPOnWgNjrj16DmsxBYXfTjcF7mOCyQUFIg1A7AmogXMDIAZ3+nZ1d0LDGPhaGRYMBotYDCyYDCwoLzRTgaCkWRCOKwGLMCiiJlIJtCACd87u9+gMIqjMCeOwnM2FlQ0kYEwpD8XSCjIAGVr4oQtnLA1a9ZqgMvYKm43oJ/zuAEUXiTOYMZdaIDE7VmT8K/JKWBePoN71TUgFYsjMYT7Bmg9KaPV8EqlEkCZCebqXBityr+ODsQYxssa7Q+gsSgYbl4IsjWdgoqIiomm0yUPR4Vunzi9rw0KkwBqFTBVW9iC/RRj3oRRpcg3VWf36S8rGrDpg1xi0BG0jSgATSXHE5ee0Pqud/YcTIksnj5/FECVCx2qFur3V1dmRLANRV1MWfrQSKk850xMTAj1I3lvVZ/Z2dkanU6n1Gq1quWo0Wjqpp4+eGiqyhw1151lZuqLHhtUeX2m8pODb/MOJWGMTUhaHpczsASUoU281hnJxMS73ubJsgIwnksDY2n6eMeRPRIMQWsfiPRG8hO3wQcFKNNlhe3UjAw1GFvre+ayEmcMchnoUiT6gYz4Chy/AUniwkAzgAJODegGPjaZrxZ/MOXsB4NcCoNyaf1wwpY29d4wizo7sQTDLChMvnA6A7pP/ddM5Vlf2FQZMElbYVqR/ALHRCCD1TtEd8cOxBo+H5OmUhwKxhvxp1qpqgNtz42Oz8aE6G3d2blgORgDjEQM47Kg7yWl9+n3zcgApN9PmfftYVlg/+udojRsC1oKck7BqJCokuf5ShqyW5sQ/sMQ6w8TsQHQExdWh/2UPRUeN+3HceuNxfk1Dki8mrFNcVbehnQSrsTlruP2O53wNXkXfIvyhb7ogPcXQ/3iMAyJO+53WnsyQwm4NuDGdUx3gf2wWVxw1Kbpd74VrQYEX8fhSFoa3ifdPMjAP3Udc9R72ABlypceNSCkCD1sYO2b8C8XIZ9vQkficPcNIOjuXvU34SK6/8cEQRfPgm9CHqRxwk/B/xQi0W+NLqe7ZDOdVwAAAABJRU5ErkJgggs=" />
|
||||
</group>
|
||||
<group id="RibbonGroup2" text="백업">
|
||||
<comboBox id="cbBakType" label="방법" textAreaWidth="100" maxLength="300" textAlign="Center">
|
||||
<items>
|
||||
<button id="RibbonButton2" toolTip="백업기능사용하지않음" description="백업기능사용하지않음" text="백업안함" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAmgIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACPElEQVQ4T62SXUhTcRjGX8yBljEySq8qIu0DwfaRurSmtDpTC3EJi5orWHT6grKghUtcHxRedBNFg+WFmAWBWIG7MKRhWEKZjMiLg4V0URdtdNEhUtx5Ou/hnK2RXdULL4c//H//8z7P+9B/r8ljjfZJUQhPBHbHx/z1qec+Zyrub4iPHnKGR9qddv3a4jUlCmLipFv62NGCZLAV891e/Oz04LOvEm88FYi12KShthpRv55bDE+faJaT3T7g3iXg/g0gGgJ6AsCRCsBdhPeuEgy6N8r9TbbcR3jsxHFBSnUdBAZU8PFdoLcLuHwAONsAtG8CGs34sYPwqq4Y0foyKeKyZOWw5plTAhAJAv3XsaAsaK30XYUS7cyc5TrCbDXhYXUpehybwzpOxIYlgx7gpgjcOgNl6E4GMlq53YFvtYSZbYSYdRlClvVxHSdit+dC+4GwFwi1amOnx59k4PSzAcyr439xEKbVB15Y8nC6bE1Kx4l4VXPnm4CLzUCgUtOcfvk0+0CsF6nthA9VhCkbYWxrHo6uW5V9gPc86y4Fdpk0t5XIhQxs9Ncrh/HOTnhtJTzaYoJ3dXFWAodkfG+5ppGNMqDv5wQkxdrMmWHua2sLsG/F8qyJnLBhNSQTO1dqLn9Sm79sGGvmsQ24r3wJ2swFkquwMDeVnLDBPRvkUYcZCRVg6O1voAH7i0xyTX7+4mnkhHFIHlSVYNi6VHObDWPNPDb/+a+wUZwwDgnvmVfFbrNhrPmPsf+9iH4BnIuXbbtSdl4AAAAASUVORK5CYIIL" />
|
||||
<button id="RibbonButton3" toolTip="사용자에의해 지정된 폴더" description="사용자에의해 지정된 폴더" text="사용자지정" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAxwEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAABaUlEQVQ4T62SoY7DMBBE8wn5hHxCYGFgoWGgYaFhoWGgYaFhoWHhwkLDQsODhmVzu04cJVGl0+lupFEkJ/N2vdnmX+TuEbMJzhOs+MZ2AWZi2wBtPfTVQxn2ZfYSnwG/VXe2WwAtx0DOGfTgTpyDmxzsZBEeoZxv1Q1bALdcRU+CMQbWWnjvC0iNCiGE5YtZ7WkDkDtXSVBrXSwgPWoQ8Ty4k1XvI4AHVqWUgjpzRW47vmIJSyfmasr7zGG5TdubDYCnXTWcBvR9vwtLdX3Razh95T1AflWVzICPdmGZgb/5NZzSEcD/uSq/M2KMMFxRgjILf2YgX6mG4+sAkCWpihQQxhZBd0h8DWmbVAM3CIRKmOIRwBtWRRK8W6TbXDmZDoEB8vSqLWF6pj1A1rNKqsdrjzQp9rBCJGx67oLDgY4A3usiblfuH0auykEJS+v2NNvzxko4PD4AZLdlPWVBivmDn7zE/6Km+QbBzDZjsg+zpQAAAABJRU5ErkJgggs=" />
|
||||
<button id="RibbonButton4" toolTip="대상폴더아래에 백업폴더가 생성됨" description="대상폴더아래에 백업폴더가 생성됨" text="원본폴더" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHQEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAv0lEQVQ4T+2PMQ6CMBiFuQk9Qm9gNzUxgZGNjm52ZJPRjY5sMrLh6OgN5Ab2BvYGzxbaQCIE42j8kj9p2n6vr8GfaeRFQ1QKXCrEuQITCu7oM/Jao7qhG3kF6FJAWjyIKBX82Je9LGqAJC0Ib0H3qptw28ROHUiLJ+GnXhzLvARis8+ECdlIhNGE7DEhdHdUeizTTPcNrLw+M3d1HvMdxrL2XY6aZdnThdjKgzxfew4bQpPqO9mzOty5W/4uQfACo5CUy0GM/SwAAAAASUVORK5CYIIL" />
|
||||
<button id="RibbonButton5" toolTip="대상폴더위에 백업폴더가 생성됨" description="대상폴더위에 백업폴더가 생성됨" text="상위폴더" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAFQEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAAt0lEQVQ4T+WQMRLCIBREuUk4AjeQTq2ktAslnZSWlOlCaWduIEfIDcwN9AZ6g/WTgI3jJLS6MzvDwLz9+2E/rtXhKtOxXHV7k6q5o9pdVLpargx3PSBtYUiEdYJ9AHQHCDPEkPl16vYhMuwItgSr5glhyZpC1ufvIQTzDNtTBKm+o+kEczM5Nflch2rzuLNyA9RxcoZH7zsIFe3BNx7VduZPYsAbTgHpaZnGBraHNAFSh/KAvxJjL5VJj/JQWF2VAAAAAElFTkSuQmCCCw==" />
|
||||
</items>
|
||||
</comboBox>
|
||||
<comboBox id="cbBakTarget" label="대상" textAreaWidth="100" textAlign="Center">
|
||||
<items>
|
||||
<button id="RibbonButton6" toolTip="대상파일이 속해있는 폴더를 백업합니다." description="대상파일이 속해있는 폴더를 백업합니다." text="폴더" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAQgMAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAC5ElEQVQ4T52Te0xNcQDHz9iMGcOMDTNjxrzfsjwqinARq6mZx7yWWWp5hBAR1dSEZL0ot3BvIZV5lFeRR5T3c6QVdbv3nHvvuZd1zcevm2Hmsflt3//O57vz/fzOkWqq7qPPjOPEkVi0Kbs5mhRJyoFtJMVtJiF6A9K/ji5zL5/t+c58+VTwPTgKUOp0HIgK/ntJdlq0gPP4ZPklsh6HRUtRfpKz5He5V6pHyjy8i4+KDnvDEWzVMahP12C564NyeRTGgm7oj8WDehqsuWDOBlMqGJM5nzyRBT5eSMfF9qaH/pRGORf11UZRvBrrg0WifB7mm14UJroyX+OBpE2NplEtwmG/gsNWjEO9KF69kEYlT8A5qC/XY32yCmvlAsx35qDc8EC5OoYzCS74Tp+ElHE4CrUunY+mLOyGNGwfDmKvjsX2JgL1RSjWxyuxVARgua3BXOrunGa62J+c+NHM9RqPlJ4YiVKdiL0+FXvtfmzv9qC+3oL6LATro2VY7s3HfGs6SskE5OIRyBf6CTc9OBE7kjmTxyElJ0RgeB6DrWafgKOwvdok9gaJvUuwlPtiLpuGct0VpXgopvN9MOV3w3C6I9o9w9C4j0U6FBdObUU46ttIISsMa5OsSiGr3EfI8kS55oJcNBjTud4Yz3YVcAcM+jZk7BzKTLcxSPtjwqguCxF714m9gWJvk6zZKKUeyEKWfGmAgHthzOuC4VR76nWtqTvekvTtg5sL4netpaokUOxdgfW+v5A1E3OJG7KQJV/oj7GwJw15nTHktKP+ZCsBt+B9lkTKtoHNBbE7gqm63iTLT8jybpZ1ebjY21fI6k7DmU4CbvsD1krUZEokbx3QXLAjbCUPz86m4pSGu/oZlGVP5VrGFIpS3ShMGu+8b93eUWRFj+DoziGkRQxywt8LtoQuIyxoEaGBAQQt9SNw4VyWB2hY7OctPlVP/DXu+HpPxMfTlVmTXZzQz/n2S/3vkaSvaQyAu2FP740AAAAASUVORK5CYIIL" />
|
||||
<button id="RibbonButton7" toolTip="대상 파일을 백업합니다" description="대상 파일을 백업합니다" text="파일" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAPAEAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAA3klEQVQ4T8WTIRLDIBBFOVKOUFkZWRlZiaxEVnIEZCQyEhnJESIrkXU0y2ZhmUJFK8rMm2QY/vsbZiJ+XlJvkZiAOzIqwMfx5uMJkMhwrUkCs8SEToSoLaLmAxOibJAFuf2YgNo/NRPCLD72VngyArIBD2Q4T30BD8MZCMOTKAKLArfC2KbCriXImwG/ZYFLglFqvEAG7GXBHuIT+N1YCYaLShfHgT1oJgE1Q/hNYPdDEODA51Fzf4LZVRfWum0MlOZ6Ai5ohIsgtCfQJOiEW80ECoxLL99y/FJ/W0K8AOyVhkPEPv4fAAAAAElFTkSuQmCCCw==" />
|
||||
</items>
|
||||
</comboBox>
|
||||
<separator id="RibbonSeparator1" />
|
||||
<button id="RibbonButton1" supportedGroupSizing="TextAlwaysVisible" text="폴더선택" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAjAIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACLklEQVQ4T8WS60vTcRyFf/9AEhmRBEWWiAXDwJDqRYgRpSUUpYaSKeWlIBMKcaZtat4256VGOqxNt7a1Wc00RQsh0SRCSx0lpmZBUSmmhkpe9vRzG6Ld3nrgvPlynsPhw1dYfdUYiiNE87sbzHlF7sj/tRju79ExM251+ueYkbkRLZaqImyG7Cx37N+yVquYHjOtgBe+lDNnT8F0pwB9RS7am1loSjK5pZRyIz8VN+qSWadg+ptuCXaIMP1SsCf81X8U3K3M58dnzRLcVKNwutFSSJ0xn4f6XCzabIwaOVXqa9wuvUqFSopakeYq02tymfxQ5pw91CbDZlKxMCSH4ZyVfi++DaZD32V4c4Hue+Ekx4ZVC1p1NhMDBfBRSa25iI5mpSu0fPrrGOg8wXx7KDNPgnhXLSHxdPDEpbNHdwqVpTK+v5Uz3J6BzajEMSiD3kQX2B0ngpHMd4Qx03KQyYZ9jNbsQp7kQ2SwZ4nzBuWqDEZ70rhvUNDVKi7pSxELzkFXNI4Xx5h9dpippv2M2QL4avaj8/paokK9CfBd4+ssUBdK6W3J5IGhEAYy4ZU49+VJZtuOMPU0iPG6QEYsEj7ptmNXeiJL2Ib/Dq96J7yosrxUrFUF2B+d57k1iVZTPC36OJq1MTRWRvO4/BT1yxwVstUR6L8lxI0LQnHOFYpl8eSlnSH9YgTJcWHEhh/g+KE9BO+VsFvig5/3JjZ7rWfDOg82enqs/AerLEH4BRliwr/WwwpQAAAAAElFTkSuQmCCCw==" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAVQcAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAG90lEQVRYR+3W21dT1xYGcB76eMb5E6TeesZRq5Zaj1RF6wWKUqVSEYuA3EUQ1IAgCAG5NjQIgUoQSeWieNRDvYCiaBXBogIqwlGEGhBCCEmAXJFLyNe5d7YgovbFR+cY6409futbc60ZrD7Wx6qvzferLBepzpUcwbvWb6WZKDuVicpLIlV9tdiP+/TDFIN3tRfjpebsO5eh/wyMA2fwoq0IV84dUXGffphikhnUp94Kv7mYvyvJTwH36Ycp5oiN/X+/gaGBUgypS2DokyA/Kw65GTHIEUQiM4UH4eG9EMSFICU6CHyeL+J5OxET6oGseC/z6WzP97eM2YBBVfJWdGKxeDGMKgmMfXkwyn+BsScTRpkQxu50GF6kwiCNh6E9Evpn+zHQHILBx8ForPBDctSW97eM2YBOUfR2mFksXkR4AYy9HNz1M6EpMHQmw9CRAP2fh6Br3QdtSxA0TQHQPNiJgcYdUNa5Y5/Ppve3jNmARl74DvwUhlQnYFSIKXU2DJRW35kIw5+xlPQA9K37oXu6F9rm3VDf3w7VHRcoalwgv+EI2bV16K5cgwhvh7/fwIBMMg1nj1yRD71MROhP0EkToG2LhraVBw2BmkfeGGxwx0C9G1S1Tqg/6waJwAcxYV6I2u0OXsA27PVxQYjnZgRtd4K/qyN8XOzh5bwOga5rzKl7VjVObED94vhUXFUEXXcO1E8ToWw6COXDcCgbQ6BqCITyvjeUd1zRd3sT+m46ovfaCsgv29DF80V7XRJGu4UY7RJglO6FiVpk6jgMk5SP8eeHMN4eRSsCugdh+HHDKoh5Nv9hN6CU5k3BtV3ZkD1MRtV5AT27VJzITcLx7HiImZv/UySOJPOQHh+GtEPBSIwKpJvvh1G5CCbq/Vj9Dozc246RP1zxsnYLhqo3wfD7RuivO0B3dT0GK1ZDfX4Zdm1dObkBRftRC95fDH1PLpRPElBdkY5n9SLL83u1+kvY1rxUF2JYKcFw3zGM0P0YoctpeuCFsYYdGJ3AXWCs3gzDTSfCv4XuGuGXv4Hqt2W4KfwS+7fZqtkWnCkSorf1FxY39uZioD0Z0rsxNIIFGOrNZ48TT0OBlsCpq5lZ/hhv8oHpISVncLqIw3Vc8tubYWTwGxZcS3j/+a8hL12EAx62EIXY+LMbOP1rOnqeUFJKou1Ig6KRh9oraXh4JxvDijy2f/h/8LQNmB8T/siXPXZTowfhP07HrzsSbg/NlTUYvLQSiv/aoPnoPPhtWGLi81d9wm7gZEEaultoHHelo78lEtKaUJw8ngydvACjsgyMP+MRGDQNNzcRziTn8JG7hNMzHLrtDOMtJjmDU/LKtdR3O6jKlkFWPB8Zu22QGvBFCYszVZSXjM6mDGjaDkF+Lxg15UlouJ1F/c3HGE03PAmZgoPDx1ncE6P1hNdt43BKfus7GCi5vsqew1ej/+JyNn2r+DPs2LjcnLVnzj853srq16OHIW1Mh/pRKNpvBqFQnEDpJRjpEcHMpt81gZvZnluSm1jc/TXcmS4c4Wxye+gI11SswsClFZR+KXoovYS3ELE7F9VxtKXyRXFou5eCrhpf1JbzcatCwKVPmNr75gDu2L3Z5GP3Cb/rhuE7PxD+vSU5h2uvWpIPEq6mW684vRjSgs/g4WSLrD3zZ3O0pcQZB/G0mo+2q74ozI2DujMfI7IjGKcxO5meS07Tz3Ls7vTcLPjLGsKrCf99A3RVDuyxay4z+Er21ivPfglZ0b9xNmYewt0XP+fYyToqiEBTVTRqL8bg4ul49m2bmN5PpGeS+1HPGdwLo/Tc2OR/bMVQzRZKvgl6wvUMfnUd4d9M4KpzSyAvmY/O47Ph77wUmYEL1nPsZOWkhqKhPAoF2dFQd+RR77Po5oez6c107OOPCX9Eb50GDdtzGjQMbknOTDlKzgwaFueSX7Al/Cv0nvwcLwrm4HrSXPh//7mWI6dWZmIwqs/zUVYYw777sY5EmLmbb34NfzXl2OT01i34RhZnkzNvvdyO8OVQ/Y/wU4RL5uC52BqxnouQ5D0vnSOnVgZ/FySiCPS00I9I989c71/HLVPOMt+5Y2dwZtBUEU4/u9rXcHXZV1CULiR8LqR51mgUWsN97cLJwfNmCeMCUSqm6VfqhupjdriROR9Vwn/hWvpcVApm40raLFSkfIpLSda4cNgaZfwZOBM7A6UxM1B8cAZORFqjIMIax/Z/itx9M5ETNhNZoTORETwLgqBZCN22ALEeCy5w3PTKTjuAV0uYEIZU+r8uPtwX0SEeCA9wxZ6dzthFv+c+P9jD03kt3J1Ww22DHVy/XYmtDivgsn45Nq9dhu9WL4Wj3RI4rLDB+q+/wDrbxRMrZ/e8f3Dcx/pYb5SV1V8GhlREGzFabAAAAABJRU5ErkJgggs=" />
|
||||
</group>
|
||||
<group id="RibbonGroup8" text="메뉴">
|
||||
<button id="RibbonButton10" supportedGroupSizing="LargeImageOnly" text="종료" textImageRelation="ImageAboveText" imageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAYQIAAAKJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACA0lEQVQ4T6WS60uTYRjG94+ElodKEUFRMQ+IKJ5A6YOIRmCsRulgaIJDGSoDzQhFSRQRnRhExL4MMjvQyRObMmcNzyJTxBPaYAQi2eV73TAfBMPIF25eeJ7n+t3XfdDhkp8AmocWz0TTwDzMPV6YOmZheOpGWdMUisyTyK4aQ1rFZ6QYRpCsd5wF/D7+89c4PDqGP3CE3Z+H8G3/wtJGADdzGv8N4Fn2S+ZM0ygcY1sitg37cCPbcjGAmSl2zR2g/dWy2Caw17GG61n1CsCazxPTNjNTnFczjqRyOya9++h4vaIB6hSADTtPzJppm5kppvWvM3viODKzVgHY7aCYFnMfj0s4NeusmWfMTPF71w4sfXOIyKhWAI6K4gVfQIRD79Zh/7KJ6IIWtGn22TDGc/sq3kxsoabrB8LTTQrAOVNc0uAS8cySH4Nvfajt9iK+1CbWX37cgE6nk/vKNg/CUo0KwCW5a53GC+2Sdvm32hZwv9UtTYy93YkWre6qzu8C0T9x41rKIwXgqJgxKOZjY7sHhRr41oNhAYQm6ZFu/IbUhx8EcjXZoABczxHntohZM2sstji180+IK+lHVJ5V67pZbMcUPpMdIPAUwN2mZQbrY0k8ozg6v1nEHFvwfyXuDkIS7ykA58zdZqdJ55LwIUfFbjMza6ZtZqY4JKFcAf7/A04A0AEgNTFacM8AAAAASUVORK5CYIIL" largeImageBase64="AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJwcAAAKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAAGyUlEQVRYR+2Wa1CUVRjHmb4108emMlFkl0WiBIFlF1gWFESQ5SaEiGBqCuZdM8trYzeHsqzUaibNHE2dLh8qu4xdtJxGk4sIe2PZXXbZXVBAUGRhYd+Ff8953+OAYVpNH2qm/8yZ98zsu+f3PM95Lm/Q//rPyJ4eFW7Njltjy1XXu/NnDLgWaAOOIpXQmqP2O7Lj+4xJYb9YUhUVpuSIcP6Xf0aG1Mj7POWzTndvKgtg/1bg6G5p7aP9m88CuzdiYJkO7jlx0KvkuBg9wWdOUhyxJCgm8iP+vuyF6qLe1SUCDr4EfPwWcP5zwPATUP0N8P0J4Ph+4O1twI6lwOq58C/NRPfjSWhKiUB1XHCHJVlRyo/662qdl7LP+/T8EbyxEbhAYHcN4DiPkdpvMPLTxxg+eQDDR19DYO9mCK+shH/rE/BvKIZvdQGul2rhypqO8zEPDZk1ip38yD+v1nma3Bsb5o3gwE7Aeha40gCYTgN130rwL99H4MirEvzlFfBvLod/XRH6V+RhYFU+blRmo2fJbLTnKVGtmjhoTpJv5UffXa6E4Hs7lqYP4S26XwbvaoTvzHHYNhbCujYH1uUZ6Nj+BAJvE/zFSgjPlaG7YjbsBVGw5U+DLe8xXC7VoKs8DVfmp8CZHYPz0yd5LVqFjiPuLEdJ6pfYuYy8PQl01tOdn4bn0KsQrl/FgMsGr9UA06YF6KzIgH/94/CuyIV+0Qx4mw3i6tNXo2NdKTpLNGgvTkJbgRqW9Eg0qEL0tkTZAxxzezVnTQtuK87w4/N36c4viPCR2q/Rd3w3Am0tGCtDiQrdS9JhK1HD5x79TbjiRkeFDp5iDTwEbyuIh0sXi/roEMGkkW9BUNA9HDde7oKkCk95JtB4Cmih8Nd8PXrnn76D4f4bHAP0/Poj7BRy1yEqyTG6XvUMXUEK2kq0cBclkhHxaC1QwjwjQoyCVSufxHHjZZsTf+bai8uBS6cwUidl+wiDH94FoWoNZf5HHCOphZXgGPWfPIErZTPQNl8rRsBFBrgLVXDlxcGaFYXayEkDpjuVpnlW9GVhj1R2Iz8cw/AXUrYLVWshrC/GIGW6YLzIcbdqyG4ieKrouYfu3lWUAGeBCs68eDhz42DPni5WhDFBtp/jxsuQKPeKHe7UUQx/tg/DDL7nGfi3LRbhPmo2/c9XYrivl2NHdXVbhei5m+CtHN6Sr0QLwZ35ZEBuLOpUkwcvqWTfc9x4kXVeVK0DPtmPwIe7qM63QNi+BINrC+FbVYD+lXloL02C+/AbHCup87vPYM2NJrhmFE6e2wluzYlBK8FZBJgBjWrZWY4bL72KDHiunNrrFgnOmsymUgxQd/OuzKUQa9Ggi4DQ28PRo2p8SgfHXCUc3HPmsZWy36qLgSMnFjZ6cgN+5rjxMqgUnb6FGcD2JyG8UAk/GTP49Dyx1nsrdWjOiRSz/3ZiRtXNlpPnStgIbiPPGZw9W+jJInHXCJjVinPtOiXwVD6ETWVie/VSa+2l1tpemgzH3h0cJ6n32Ht8J4ldRePMUNFbBmfLTmAWDUtmFBo0k3sb1LJTHDdelpSpG41JCviXZYrwG8vJ8+U6gmugXzzzltD3n/sBLpp8147QRBwj68uroU8PGzWAFjPIlPYoLkaFXDWqZbs4bryatOGhv8Y8NNhNyTREiccMuLY0C03ZEegz1XEExCrwLJoNZ6Ga7jwePmrBN8WMrKUGJYafLfK+mRLQoA311yuDnTSYZnLc7UUvHLckT8U1GqlXl2ShvYza7Y4Kfrykrte3wjmX4PlSprvXl91Sml0H90hwSkZ29yZqQjVKWY9eOeUre1rogxx1e7EoVMeG9Lhz4tC1mEYqGeApTUO7WONSd7tZ4/ZcAvBMH7sY3E7vsH2TjrxPe2TgonJSq0mjWHTHWXBTTZrwVRfiHx5qzydQkRbOIg31dar/woQxZcZq/A/gFB22F0OfEhmoVgZ3GBJlB+86DcfKmBi2r0YdPNRCEEueNFQ8BHbRclBvt4+Bs1ITs53tWf3T3jInWoTXq2WXaQidbE4Ji+FH/3kZE+RVtdEP+ixpkeJAYYv1ddZaWXdjDcaRFyvWudR4yGsKuTlzmhh25jmD07ehmh/518WmV4NqsqU+ekrATB+bNvLMPme6CGRRYCEXPaY6N2U8JmY7Szh25yzsf8vz34t9YtPH5fZLcaFGFpEa1cShRlWIYEiZCmOiTKhXK3ysydTFhHSzUmNeG5PlC5tSw+/nR/wzYhVi1oQtMKhlHzTEh56pU4foa2NDWihCF1iHMyTIdjcly7NM2ogJ/C//69+uoKDfAAHz7yrp9MNHAAAAAElFTkSuQmCCCw==" />
|
||||
</group>
|
||||
</tab>
|
||||
</tabs>
|
||||
<tabGroups />
|
||||
</ribbon>
|
||||
29
파일관리자.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.1.dtd">
|
||||
<dotfuscator version="2.1">
|
||||
<!--응용 프로그램에서 생성한 코드입니다. 수동으로 편집하지 마십시오.-->
|
||||
<input>
|
||||
<asmlist>
|
||||
<inputassembly>
|
||||
<file dir="E:\Tinsky\VB.NET\FileManager\DriveInfo\bin\Debug" name="CommonClassv2.dll" />
|
||||
</inputassembly>
|
||||
<inputassembly>
|
||||
<file dir="E:\Tinsky\VB.NET\FileManager\DriveInfo\bin\Debug" name="FileManager.exe" />
|
||||
</inputassembly>
|
||||
</asmlist>
|
||||
</input>
|
||||
<output>
|
||||
<file dir="E:\Tinsky\VB.NET\FileManager\DriveInfo\bin\난독처리" />
|
||||
</output>
|
||||
<renaming>
|
||||
<excludelist>
|
||||
<module name="FileManager.exe" assemblyname="FileManager" />
|
||||
<type name="CommonClassv2.My.MyProject/ThreadSafeObjectProvider`1<T>" />
|
||||
</excludelist>
|
||||
<mapping>
|
||||
<mapoutput overwrite="false">
|
||||
<file dir="${configdir}\Dotfuscated" name="Map.xml" />
|
||||
</mapoutput>
|
||||
</mapping>
|
||||
</renaming>
|
||||
</dotfuscator>
|
||||