Хранение файлов жесткого диска в виртуальной памяти без изменения путей к файлам

Я полагаю, что мой вопрос очень конкретный, но я надеюсь, что может быть решение уже.

Я хочу сделать несколько папок доступными в виртуальной памяти, но не изменять способ доступа к ним, как инструмент виртуализации, который скопирует файлы в виртуальную память и перенаправляет операцию ввода-вывода в эти файлы в виртуальную память.

  • Ноутбук под управлением Windows 7 постоянно терял связь
  • Сколько адресов памяти мы можем получить с 32-битным процессором и 1 ГБ оперативной памяти?
  • Могу ли я юридически отказаться от Win 7 64 бит до Win 7 32 бит?
  • Pinnacle Studio 14 с ошибкой в ​​Windows 7 x64
  • GIMP 2.6.11 на Windows 7 64-битный не может открывать файлы PNG
  • Windows 7 64-бит, показывающий 12 ГБ (7,99 ГБ)
  • У меня огромные исходные папки, которые часто перекомпилируются maven, и я хочу увеличить общую скорость сборки, сделав эти источники доступными в ram вместо hdd.

    Я знаком с ImDisk, но я не могу отключить среду, изменив пути к источникам (есть много уже настроенных инструментов).

    Поэтому возникает вопрос: существует ли какое-либо решение для описанной выше проблемы?

    С уважением

  • Как удалить повторяющиеся текстовые строки из файлов размером более 4 ГБ?
  • WOW (Windows в Windows) Запуск 32-разрядных приложений в Windows 7
  • Как проверить, поддерживает ли мое оборудование 64-разрядную версию в Windows?
  • Как сузить область действия этого сообщения об ошибке?
  • Существуют ли какие-либо возможности для восстановления данных с мертвого жесткого диска
  • Почему Windows 7 устанавливает 64-разрядные приложения в папку Program Files (x86)? Могу ли я изменить поведение?
  • One Solution collect form web for “Хранение файлов жесткого диска в виртуальной памяти без изменения путей к файлам”

    Возможное решение

    При условии, что:

    • Вы уже создали RAM-диск в физической памяти, назначенный R: (любая другая буква тоже прекрасна).
    • Вы хотите сделать папку C:\Folder1 доступной в ОЗУ для более быстрого доступа.
    • Folder1 хранится на локальном томе в формате NTFS.

    Применение изменений

    1. Закройте все программы, к которым может обращаться Folder1 .
    2. Переименуйте Folder1 в Folder1.zTarget (фактическое имя не важно, если оно отличается).
    3. Скопируйте Folder1.zTarget в RAM ( R: Folder1.zTarget .
    4. Создайте ссылку для соединения каталога с именем Folder1 указывающую на R:\Folder1.zTarget .

    С этого момента каждый раз, когда вы C:\Folder1 доступ к C:\Folder1 , на самом деле вы получаете доступ к данным, хранящимся на RAM-диске ( R:\Folder1.zTarget ).

    Возвращение назад

    1. Закройте все программы, к которым может обращаться Folder1 (теперь ссылка на соединение с каталогом).
    2. Если какой-либо файл внутри Folder1 был изменен, скопируйте Folder1.zTarget из RAM ( R: Folder1.zTarget на диск ( C: Folder1.zTarget чтобы сохранить изменения.
    3. Удалите ссылку на соединение каталога с именем Folder1 .
    4. Переименуйте Folder1.zTarget Вернитесь в Folder1 .

    Пакетная автоматизация

    Несмотря на то, что большинство шагов можно выполнить вручную, нет встроенного способа создания ссылок на узлы каталогов, но из интерфейса командной строки ( mklink ). Пока мы это делаем, мы можем сэкономить время, автоматизируя весь процесс.

    Пример скрипта

    После краткой инициализации скрипт проверяет, есть ли папки, чье имя содержит собственный суффикс. Затем он продолжит применение или возврат изменений для каждой папки, установленной в переменной folders , как описано выше – за исключением шагов «закрыть все программы».

     @echo off set folders="C:\Folder1","C:\Some other\folder" set suffix=zTarget set ramdisk=R: for %%G in (%folders%) do ( dir "%%~dpG" /a:d | find ".%suffix%" >nul goto :check ) :check if "%errorlevel%"=="0" goto :revert :apply for %%G in (%folders%) do ( if exist "%%~G\" ( ren "%%~G" "%%~nG.%suffix%" xcopy "%%~G.%suffix%" "%ramdisk%%%~pnG.%suffix%" /e /i /f /h /r /k /y /j mklink /j "%%~G" "%ramdisk%%%~pnG.%suffix%" echo. )) goto :end :revert for %%G in (%folders%) do ( if exist "%%~G.%suffix%\" ( xcopy "%ramdisk%%%~pnG.%suffix%" "%%~G.%suffix%" /e /i /f /h /r /k /y /j rd "%%~G" ren "%%~G.%suffix%" "%%~nG" echo. )) :end pause exit /b 
    Давайте будем гением компьютера.