From 666f24aaf3927411d350d61e4ae9229eebadb0a1 Mon Sep 17 00:00:00 2001 From: NoufN Date: Thu, 25 Nov 2021 13:56:51 +0300 Subject: [PATCH] Nouf Naif --- .../FileSystem.xcodeproj/project.pbxproj | 379 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 41135 bytes .../xcschemes/xcschememanagement.plist | 14 + FileSystem/FileSystem/AppDelegate.swift | 36 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 98 +++++ .../FileSystem/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../FileSystem/Base.lproj/Main.storyboard | 237 +++++++++++ FileSystem/FileSystem/FileManagerSystem.swift | 22 + FileSystem/FileSystem/Info.plist | 25 ++ FileSystem/FileSystem/SceneDelegate.swift | 52 +++ FileSystem/FileSystem/TableViewCell.swift | 14 + FileSystem/FileSystem/TableViewCell2.swift | 14 + FileSystem/FileSystem/ViewController.swift | 130 ++++++ FileSystem/FileSystem/ViewController2.swift | 74 ++++ 18 files changed, 1152 insertions(+) create mode 100644 FileSystem/FileSystem.xcodeproj/project.pbxproj create mode 100644 FileSystem/FileSystem.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcuserdata/nouf.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 FileSystem/FileSystem.xcodeproj/xcuserdata/nouf.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 FileSystem/FileSystem/AppDelegate.swift create mode 100644 FileSystem/FileSystem/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 FileSystem/FileSystem/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 FileSystem/FileSystem/Assets.xcassets/Contents.json create mode 100644 FileSystem/FileSystem/Base.lproj/LaunchScreen.storyboard create mode 100644 FileSystem/FileSystem/Base.lproj/Main.storyboard create mode 100644 FileSystem/FileSystem/FileManagerSystem.swift create mode 100644 FileSystem/FileSystem/Info.plist create mode 100644 FileSystem/FileSystem/SceneDelegate.swift create mode 100644 FileSystem/FileSystem/TableViewCell.swift create mode 100644 FileSystem/FileSystem/TableViewCell2.swift create mode 100644 FileSystem/FileSystem/ViewController.swift create mode 100644 FileSystem/FileSystem/ViewController2.swift diff --git a/FileSystem/FileSystem.xcodeproj/project.pbxproj b/FileSystem/FileSystem.xcodeproj/project.pbxproj new file mode 100644 index 0000000..854cf55 --- /dev/null +++ b/FileSystem/FileSystem.xcodeproj/project.pbxproj @@ -0,0 +1,379 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 1E2B771E274E95E10082947D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B771D274E95E10082947D /* AppDelegate.swift */; }; + 1E2B7720274E95E10082947D /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B771F274E95E10082947D /* SceneDelegate.swift */; }; + 1E2B7722274E95E10082947D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B7721274E95E10082947D /* ViewController.swift */; }; + 1E2B7725274E95E10082947D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1E2B7723274E95E10082947D /* Main.storyboard */; }; + 1E2B7727274E95E20082947D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1E2B7726274E95E20082947D /* Assets.xcassets */; }; + 1E2B772A274E95E20082947D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1E2B7728274E95E20082947D /* LaunchScreen.storyboard */; }; + 1E2B7732274E997B0082947D /* TableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B7731274E997A0082947D /* TableViewCell.swift */; }; + 1E2B7734274E9A800082947D /* FileManagerSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B7733274E9A800082947D /* FileManagerSystem.swift */; }; + 1E2B7736274EA9220082947D /* TableViewCell2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B7735274EA9220082947D /* TableViewCell2.swift */; }; + 1E2B7738274EA9380082947D /* ViewController2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2B7737274EA9380082947D /* ViewController2.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1E2B771A274E95E10082947D /* FileSystem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FileSystem.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E2B771D274E95E10082947D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 1E2B771F274E95E10082947D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 1E2B7721274E95E10082947D /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 1E2B7724274E95E10082947D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 1E2B7726274E95E20082947D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 1E2B7729274E95E20082947D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 1E2B772B274E95E20082947D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 1E2B7731274E997A0082947D /* TableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewCell.swift; sourceTree = ""; }; + 1E2B7733274E9A800082947D /* FileManagerSystem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileManagerSystem.swift; sourceTree = ""; }; + 1E2B7735274EA9220082947D /* TableViewCell2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewCell2.swift; sourceTree = ""; }; + 1E2B7737274EA9380082947D /* ViewController2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController2.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1E2B7717274E95E10082947D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1E2B7711274E95E10082947D = { + isa = PBXGroup; + children = ( + 1E2B771C274E95E10082947D /* FileSystem */, + 1E2B771B274E95E10082947D /* Products */, + ); + sourceTree = ""; + }; + 1E2B771B274E95E10082947D /* Products */ = { + isa = PBXGroup; + children = ( + 1E2B771A274E95E10082947D /* FileSystem.app */, + ); + name = Products; + sourceTree = ""; + }; + 1E2B771C274E95E10082947D /* FileSystem */ = { + isa = PBXGroup; + children = ( + 1E2B771D274E95E10082947D /* AppDelegate.swift */, + 1E2B771F274E95E10082947D /* SceneDelegate.swift */, + 1E2B7721274E95E10082947D /* ViewController.swift */, + 1E2B7731274E997A0082947D /* TableViewCell.swift */, + 1E2B7737274EA9380082947D /* ViewController2.swift */, + 1E2B7735274EA9220082947D /* TableViewCell2.swift */, + 1E2B7733274E9A800082947D /* FileManagerSystem.swift */, + 1E2B7723274E95E10082947D /* Main.storyboard */, + 1E2B7726274E95E20082947D /* Assets.xcassets */, + 1E2B7728274E95E20082947D /* LaunchScreen.storyboard */, + 1E2B772B274E95E20082947D /* Info.plist */, + ); + path = FileSystem; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1E2B7719274E95E10082947D /* FileSystem */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E2B772E274E95E20082947D /* Build configuration list for PBXNativeTarget "FileSystem" */; + buildPhases = ( + 1E2B7716274E95E10082947D /* Sources */, + 1E2B7717274E95E10082947D /* Frameworks */, + 1E2B7718274E95E10082947D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FileSystem; + productName = FileSystem; + productReference = 1E2B771A274E95E10082947D /* FileSystem.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 1E2B7712274E95E10082947D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1300; + LastUpgradeCheck = 1300; + TargetAttributes = { + 1E2B7719274E95E10082947D = { + CreatedOnToolsVersion = 13.0; + }; + }; + }; + buildConfigurationList = 1E2B7715274E95E10082947D /* Build configuration list for PBXProject "FileSystem" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 1E2B7711274E95E10082947D; + productRefGroup = 1E2B771B274E95E10082947D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1E2B7719274E95E10082947D /* FileSystem */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1E2B7718274E95E10082947D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E2B772A274E95E20082947D /* LaunchScreen.storyboard in Resources */, + 1E2B7727274E95E20082947D /* Assets.xcassets in Resources */, + 1E2B7725274E95E10082947D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1E2B7716274E95E10082947D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E2B7738274EA9380082947D /* ViewController2.swift in Sources */, + 1E2B7736274EA9220082947D /* TableViewCell2.swift in Sources */, + 1E2B7734274E9A800082947D /* FileManagerSystem.swift in Sources */, + 1E2B7722274E95E10082947D /* ViewController.swift in Sources */, + 1E2B7732274E997B0082947D /* TableViewCell.swift in Sources */, + 1E2B771E274E95E10082947D /* AppDelegate.swift in Sources */, + 1E2B7720274E95E10082947D /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 1E2B7723274E95E10082947D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 1E2B7724274E95E10082947D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 1E2B7728274E95E20082947D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 1E2B7729274E95E20082947D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1E2B772C274E95E20082947D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 1E2B772D274E95E20082947D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1E2B772F274E95E20082947D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = FileSystem/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = n.FileSystem; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1E2B7730274E95E20082947D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = FileSystem/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = n.FileSystem; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1E2B7715274E95E10082947D /* Build configuration list for PBXProject "FileSystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E2B772C274E95E20082947D /* Debug */, + 1E2B772D274E95E20082947D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E2B772E274E95E20082947D /* Build configuration list for PBXNativeTarget "FileSystem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E2B772F274E95E20082947D /* Debug */, + 1E2B7730274E95E20082947D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 1E2B7712274E95E10082947D /* Project object */; +} diff --git a/FileSystem/FileSystem.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/FileSystem/FileSystem.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/FileSystem/FileSystem.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcuserdata/nouf.xcuserdatad/UserInterfaceState.xcuserstate b/FileSystem/FileSystem.xcodeproj/project.xcworkspace/xcuserdata/nouf.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6f7f21422161206d6f9484bf81761c631631eb7a GIT binary patch literal 41135 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 W^nOW`KQZH<8UB9};2-^x$^QdnL9kH( literal 0 HcmV?d00001 diff --git a/FileSystem/FileSystem.xcodeproj/xcuserdata/nouf.xcuserdatad/xcschemes/xcschememanagement.plist b/FileSystem/FileSystem.xcodeproj/xcuserdata/nouf.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..7b480eb --- /dev/null +++ b/FileSystem/FileSystem.xcodeproj/xcuserdata/nouf.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + FileSystem.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/FileSystem/FileSystem/AppDelegate.swift b/FileSystem/FileSystem/AppDelegate.swift new file mode 100644 index 0000000..43f9fe4 --- /dev/null +++ b/FileSystem/FileSystem/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/FileSystem/FileSystem/Assets.xcassets/AccentColor.colorset/Contents.json b/FileSystem/FileSystem/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/FileSystem/FileSystem/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FileSystem/FileSystem/Assets.xcassets/AppIcon.appiconset/Contents.json b/FileSystem/FileSystem/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/FileSystem/FileSystem/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FileSystem/FileSystem/Assets.xcassets/Contents.json b/FileSystem/FileSystem/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/FileSystem/FileSystem/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FileSystem/FileSystem/Base.lproj/LaunchScreen.storyboard b/FileSystem/FileSystem/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/FileSystem/FileSystem/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FileSystem/FileSystem/Base.lproj/Main.storyboard b/FileSystem/FileSystem/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b1c15b8 --- /dev/null +++ b/FileSystem/FileSystem/Base.lproj/Main.storyboard @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FileSystem/FileSystem/FileManagerSystem.swift b/FileSystem/FileSystem/FileManagerSystem.swift new file mode 100644 index 0000000..7a9e1df --- /dev/null +++ b/FileSystem/FileSystem/FileManagerSystem.swift @@ -0,0 +1,22 @@ +// +// File.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import Foundation +// let dirUel = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first +// do{ +//// create folder +// let dir = dirUel?.appendingPathComponent("decumentOne") +// try fileManager.createDirectory(at: dir!, withIntermediateDirectories: true, attributes:[:]) +// +// } catch { +// print("Error") +// } +//// create file +// let dirForFila = dirUel?.appendingPathComponent("decumentOne").appendingPathComponent("name.text") +// let text = "Hi every one".data(using: .utf8) +// fileManager.createFile(atPath: dirForFila!.path , contents: text, attributes: [:]) +// print(dirUel?.path ) diff --git a/FileSystem/FileSystem/Info.plist b/FileSystem/FileSystem/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/FileSystem/FileSystem/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/FileSystem/FileSystem/SceneDelegate.swift b/FileSystem/FileSystem/SceneDelegate.swift new file mode 100644 index 0000000..a1072f4 --- /dev/null +++ b/FileSystem/FileSystem/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/FileSystem/FileSystem/TableViewCell.swift b/FileSystem/FileSystem/TableViewCell.swift new file mode 100644 index 0000000..e05e235 --- /dev/null +++ b/FileSystem/FileSystem/TableViewCell.swift @@ -0,0 +1,14 @@ +// +// TableViewCell.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import UIKit + +class TableViewCell: UITableViewCell { + + @IBOutlet weak var nameFolder: UILabel! + +} diff --git a/FileSystem/FileSystem/TableViewCell2.swift b/FileSystem/FileSystem/TableViewCell2.swift new file mode 100644 index 0000000..2b59882 --- /dev/null +++ b/FileSystem/FileSystem/TableViewCell2.swift @@ -0,0 +1,14 @@ +// +// TableViewCell2.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import UIKit + +class TableViewCell2: UITableViewCell { + + @IBOutlet weak var nameFile: UILabel! + +} diff --git a/FileSystem/FileSystem/ViewController.swift b/FileSystem/FileSystem/ViewController.swift new file mode 100644 index 0000000..383c86c --- /dev/null +++ b/FileSystem/FileSystem/ViewController.swift @@ -0,0 +1,130 @@ +// +// ViewController.swift + +// +// Created by nouf on 23/11/2021. +// + +import UIKit + + +class ViewController: UIViewController { + + + let fileManager = FileManager.default // API + + var folderArray = [Any]() + var selectName = "" + var swithMove = 0 + + @IBOutlet weak var nameFolder: UITextField! + @IBOutlet weak var nameFile: UITextField! + @IBOutlet weak var tabelViwe: UITableView! + @IBOutlet weak var textViwe: UITextView! + @IBOutlet weak var swithMovOutlet: UISwitch! + + + + override func viewDidLoad() { + super.viewDidLoad() + tabelViwe.delegate = self + tabelViwe.dataSource = self + relodFodel() + } + + + @IBAction func createFolderAction(_ sender: Any) { + + let dirUel = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first // path + do{ + + let newFolder = dirUel?.appendingPathComponent(nameFolder.text!) + try fileManager.createDirectory(at: newFolder!, withIntermediateDirectories: true, attributes:[:]) + } catch { + print("Error") + } + + folderArray.removeAll() + relodFodel() + tabelViwe.reloadData() + } + + @IBAction func createFileAction(_ sender: Any) { + guard selectName != "" else {return} + guard nameFile.text!.isEmpty != true else {return} + let dirUel = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first // path + + let newFila = dirUel?.appendingPathComponent(selectName).appendingPathComponent(nameFile.text! + ".txt") + let text = textViwe.text.data(using: .utf8) + fileManager.createFile(atPath: newFila!.path , contents: text, attributes: [:]) + } + + + @IBAction func swithMovAction(_ sender: Any) { + + if swithMovOutlet.isOn == true { + swithMove = 1 + } else { + swithMove = 0 + } + + + } + + + func relodFodel(){ + + let dirUel = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first + + do{ + let folder = try fileManager.contentsOfDirectory(atPath: dirUel!.path) + + for folder in folder { + let checkFolder = dirUel?.appendingPathComponent(folder) + if checkFolder?.hasDirectoryPath == true { + self.folderArray.append(folder) + } else { + print("Sorry not folder\(folder)") + } + } + } catch { + print("Error") + } + } + + + + + +} + +extension ViewController: UITableViewDelegate, UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return folderArray.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! TableViewCell + cell.nameFolder.text = folderArray[indexPath.row] as? String + return cell + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + if swithMove == 0 { + selectName = folderArray[indexPath.row] as! String + + } else { + selectName = folderArray[indexPath.row] as! String + self.performSegue(withIdentifier: "moveOtherPage", sender: self) + } + } + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if segue.identifier == "moveOtherPage" { + let vc = segue.destination as! ViewController2 + vc.nameFile = selectName + + } + } +} + diff --git a/FileSystem/FileSystem/ViewController2.swift b/FileSystem/FileSystem/ViewController2.swift new file mode 100644 index 0000000..5374c51 --- /dev/null +++ b/FileSystem/FileSystem/ViewController2.swift @@ -0,0 +1,74 @@ +// +// ViewController2.swift +// FileSystem +// +// Created by nouf on 24/11/2021. +// + +import UIKit + +class ViewController2: UIViewController, UITableViewDataSource, UITableViewDelegate { + + let fileManager = FileManager.default + var dirUrl : URL? + + var nameFile = "" + var arrayFiles = [String]() + + @IBOutlet weak var textArea: UITextView! + @IBOutlet weak var labelName: UILabel! + @IBOutlet weak var tableViewFile: UITableView! + + override func viewDidLoad() { + super.viewDidLoad() + + tableViewFile.dataSource = self + tableViewFile.delegate = self + + dirUrl = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! + print(dirUrl!) + + let dir = dirUrl?.appendingPathComponent(nameFile) + do { + let files = try fileManager.contentsOfDirectory(atPath: dir!.path) + self.arrayFiles = files + print(files) + } catch{ + print("Error") + } + print(dirUrl!) + } + + + + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return arrayFiles.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableViewFile.dequeueReusableCell(withIdentifier: "myCell2", for: indexPath) as! TableViewCell2 + cell.nameFile.text = arrayFiles[indexPath.row] + + return cell + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + labelName.text = arrayFiles[indexPath.row] + readFile(nameFiles: arrayFiles[indexPath.row]) + } + + func readFile(nameFiles:String){ + let dir = dirUrl?.appendingPathComponent(nameFile).appendingPathComponent(nameFiles) + do { + let content = try String(contentsOf: dir!, encoding: .utf8) + print(content) + self.textArea.text = content + } catch { + + } + } + + +} +