उद्देश्यपूर्ण रूप से विशेष रूप से एक फ़ाइल को कैसे लॉक किया जाए?


87

मैं किसी फ़ाइल पर अनन्य लॉक रखना चाहता हूं ताकि उसे किसी अन्य चीज़ से पढ़ा या लिखा न जा सके। क्या ऐसा करने के लिए एक सरल विंडोज टूल या कमांड है?

मुझे लगता है कि उपकरण या उपयोगिता LockFileEx विंडोज फ़ंक्शन को लागू करेगी ।

नोट : मैंने एक पाठ फ़ाइल पर नोटपैड और नोटपैड ++ जैसे पाठ संपादकों की कोशिश की है, लेकिन वे इस पर एक विशेष लॉक नहीं रखते हैं।


सिर्फ एक क्यों नहीं? इसके अलावा, उन्हें कितने समय तक लॉक रखना चाहिए? क्या उन्हें किसी घटना का इंतजार करना चाहिए?
मेहरदाद

6
मैंने एक प्रोग्रामिंग पर विचार किया लेकिन लगा कि मैं एक त्वरित उपकरण, संपादक या कमांड का उपयोग कर सकता हूं। सुपरयूज़र पर सभी उपयोगकर्ता प्रोग्रामर नहीं होते हैं। bit.ly/lXT6ey मैं इस सवाल के साथ स्टैकओवरफ़्लो मार्ग पर नहीं जाना चाहता था। जब यह फ़ाइलों तक नहीं पहुंच सकता तो किसी ऐप के व्यवहार का परीक्षण करें।
जॉन के

मैं आपके लिए एक बनाने में सक्षम हो सकता हूं - बस लेमेम जानता है कि ताला कब जारी किया जाना चाहिए।
मेहरदाद

भी मेरे समान प्रश्न देखें superuser.com/questions/519389/flock-command-for-windows
eadmaster

जाहिरा तौर पर, नोटपैड और नोटपैड ++ जैसे संपादकों ने फ़ाइल को गैर-विशेष रूप से खुला नहीं रखा है।
जॉन

जवाबों:


23

आसान फ़ाइल लॉकर (फ्रीवेयर) आज़माएं ।

यहाँ छवि विवरण दर्ज करें


विंडोज 2003 पर काम नहीं करता है
एरिक बॉनोट

14
यह एप्लिकेशन "लॉक" फ़ाइलों के लिए प्रकट नहीं होता है क्योंकि फ़ाइल पर अनुमति बदल जाती है। यह एक महत्वपूर्ण अंतर है यदि आप यह परीक्षण करने की कोशिश कर रहे हैं कि आपका एप्लिकेशन किसी अन्य एप्लिकेशन द्वारा सक्रिय रूप से खोली / लॉक की गई फ़ाइलों को कैसे संभालता है। मेरे मामले में यह एप्लिकेशन काम नहीं किया। 'नोटपैड> फाइल' समाधान यहां उत्तर होना चाहिए।
जवज्जवज्जवजव २०'१५ को

1
विंडोज 10 पर काम नहीं करता है। खबरदार !!
शाहर प्रीश

यह ऐप विंडोज 10 पर कई ब्लू स्क्रीन क्रैश का कारण बना। यह ऐप अनुमति परिवर्तनों के माध्यम से दुर्गम फ़ाइलों को बनाने के लिए भी बनाया गया है, न कि प्रक्रियाओं द्वारा लॉकिंग फ़ाइल। FileLocker का उपयोग @ RRKbabxW3 के उत्तर से पूरी तरह से काम किया।
जॉर्डन मैक

विंडोज 10 पर मौत की नीली स्क्रीन पर जाता है
गुप्ता

137

सरल समाधान: ब्याज की निर्देशिका में cmd ​​लाइन से चलाएं:

notepad >filetolock

पुन: निर्देशित स्टडआउट के रूप में, यह तब तक लॉक रहेगा जब तक एप्लिकेशन (नोटपैड) समाप्त नहीं हो जाता।

ध्यान दें कि "फ़िलाटोलॉक" को फिर से प्रत्यक्ष द्वारा अधिलेखित किया जाएगा, इसलिए आप शायद किसी भी महत्व की मौजूदा फ़ाइल का उपयोग नहीं करना चाहते हैं। एप्लिकेशन को आप परीक्षण करने की कोशिश कर रहे हैं एक खाली "filetolock" के लिए कोई फर्क नहीं पड़ता, क्योंकि एप्लिकेशन वैसे भी इसे खोलने में सक्षम नहीं होगा।


38
अपेंडाईट को अब अपडाईट फिल्टॉलॉक के बजाय अपेंडायड का उपयोग करें:notepad >>filetolock
eadmaster

5
बहुत उपयोगी समाधान, कुछ भी स्थापित करने की आवश्यकता नहीं है
16

5
अधिक फ्रीवेयर डाउनलोड करने की तुलना में यह एक बेहतर समाधान है।
बेनक्रॉफ्ट

9
अभी भी विंडोज 10 पर काम करता है। स्वीकृत उत्तर होना चाहिए
सूनडीड

8
किसी कारण से इसे cmd.exe में निष्पादित किया जाना है। यह PowerShell में काम नहीं करता है। फ़ाइल बनाई गई है और नोटपैड खोला गया है लेकिन नोटपैड के खुले होने के बावजूद आप फ़ाइल को हटा सकते हैं। मैंने इसका परीक्षण विंडोज सर्वर 2012 और विंडोज 10.
विले सलोनन

32

एक फाइल ताला 3 पार्टी उपकरण के बिना , फ़ाइल के लिए कोई परिवर्तन बंद कर दिया जा रहा है और फ़ाइल भी कॉपी नहीं किया जा सकता है

यह PowerShell स्क्रिप्ट एक समान प्रश्न के उत्तर से एक उद्धरण है।

यदि आपको यह उपयोगी लगता है, तो आप मूल उत्तर को बढ़ा सकते हैं और इस पोस्टिंग को नहीं।

#Specify the file name
$fileName = "C:\myfile.txt"

#Open the file in read only mode, without sharing (I.e., locked as requested)
$file = [System.io.File]::Open($fileName, 'Open', 'Read', 'None')

#Wait in the above (file locked) state until the user presses a key
Write-Host "Press any key to continue ..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

#Close the file
$file.Close()

2
मैंने इसे एकमात्र कार्यशील समाधान के रूप में पाया। Notepad और EasyFileLocker दोनों तरीके पूरी तरह से फ़ाइल को लॉक नहीं करते हैं और फिर भी कॉपी किया जा सकता है (विंडोज 10 पर परीक्षण किया गया है)
HypeZ

Powershell ISE के उपयोग के [void](Read-Host 'Press Enter to continue')बजाय $host.UI.RawUI.ReadKey(...)ReadKey Powershell ISE में छद्म कंसोल में समर्थित नहीं है।
साइमनट्यूसी


11

FileLocker एक फ्रीवेयर / ओपन सोर्स कमांड लाइन टूल है।

उपयोग:

FileLocker [/T LockTime] [/I] [/K] [/Q] file [file...]

/T LockTime     Time in milliseconds to lock the file
/I              Infinite locking until process is killed (default)
/K              Lock file until key is pressed
/Q              Be quiet.

1
इसने मेरे लिए काम किया जहां अन्य समाधान नहीं हुए
काउलिलेटर

2
ध्यान दें कि विंडोज 10 पर, इसे व्यवस्थापक के रूप में चलाया जाना चाहिए।
काउलिनर

4

मैं टिप्पणी नहीं लिख सकता, इसलिए मैं अपनी जानकारी इस तरह जोड़ता हूं:

https://stackoverflow.com/questions/5860542/how-can-i-simulate-a-locked-file-one-which-has-a-write-lock

संपादित करें: अन्य प्रश्न का सारांश:

  • विराम आदेश: ( >&2 pause ) >> file2lock.txt

  • एमएस प्रोग्राम जैसे शब्द या एक्सेल लॉक भी (पाठ-फाइलों के लिए काम करता है)

  • प्रोग्राम के LockFileExसाथ (विंडोज़ एपीआई) का उपयोग करें LOCKFILE_EXCLUSIVE_LOCKऔरLOCKFILE_FAIL_IMMEDIATELY


1

यहां बताया गया है कि मैं बग टेस्टिंग के लिए लॉक किए गए फ़ाइल के उपयोगकर्ता व्यवहार को कैसे दोहराता हूं।

नई स्ट्रीमराइडर के रूप में डिम ("C: \ test \ sampleFile.txt")

मैं फ़ाइल को लॉक करने के लिए उस इकाई को अपनी इकाई परीक्षण में जोड़ता हूं और फिर किसी दिए गए फ़ाइल के लॉक होने पर खराब व्यवहार को दोहराने के लिए परीक्षण को डिबग मोड में चलाता हूं।

मुझे अभी भी नहीं पता है कि मेरे व्यावसायिक उपयोगकर्ता दी गई फ़ाइल को कैसे लॉक कर रहे हैं। जैसा कि आपने कहा, नोटपैड इसे विशेष रूप से लॉक नहीं कर सकता है।

सौभाग्य से, जब तक आप अन्यथा निर्दिष्ट नहीं करते हैं, तब तक स्ट्रीम स्ट्रीमर घोषित करना एक फ़ाइल को विशेष रूप से लॉक करता है।


1

मैं मार्श-विगेल द्वारा दूसरा समाधान करता हूं। यहाँ स्क्रिप्ट का मेरा संस्करण है:

# This is lock_file.ps1
[CmdletBinding()]
Param(
  [Parameter(Mandatory=$False)]
  [string]$my_file_path
)
if (!$my_file_path){
   Write-Host "Parameter my_file_path is missing, quitting."
   [Environment]::Exit(1)
}
$my_file_exists = Test-Path $my_file_path -pathType Leaf
If ($my_file_exists) {
   #Open the file in read only mode, without sharing (I.e., locked as requested)
   $my_open_file = [System.io.File]::Open($my_file_path, 'Open', 'Read', 'None')
   #Wait in the above (file locked) state until the user presses a key
   Write-Host "Press any key to continue ..."
   $null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
   #Close the file
   $my_open_file.Close()
} else {
   Write-Host "Parameter mismatch, file doesn't exist." 
}

आप इसे इस तरह से cmd से कॉल कर सकते हैं:

powershell -ExecutionPolicy Unrestricted -file lock_file.ps1 "path\to\file_to_lock.txt"

0

रोबोकॉपी ईआरआरओआर के परीक्षण के लिए "मैंने केवल उपयोगकर्ता के लिए रीड-एक्सेस को हटा दिया" से इनकार किया। क्या इससे काम हो जायेगा?

विंडोज़ 10 के लिए यह कमांड लाइन से आसानी से किया जा सकता है

chmod 'उर' लॉकफाइल

विंडोज 7 के लिए, आप फ़ाइल एक्सप्लोरर सुरक्षा गुणों का उपयोग कर सकते हैं।


-2

अपने पासवर्ड के साथ 'योर-पासवर्ड-हियर' बदलें, और इस स्क्रिप्ट को लॉकर.बैट के रूप में सहेजें

*cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==Your-Password-Here goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End*

जब आप बैच फ़ाइल चलाते हैं, तो यह आपको 'क्या आप सुनिश्चित हैं कि आप फ़ोल्डर को लॉक करना चाहते हैं (Y / N)' प्रॉम्प्ट के साथ प्रस्तुत करेंगे; Y टाइप करें और एंटर दबाएं और फोल्डर लॉक हो जाएगा।

बैच फ़ाइल को फिर से चलाएँ, और अपना पासवर्ड और फ़ोल्डर दर्ज करें और आपकी सभी फाइलें फिर से अनलॉक हो जाएंगी।


2
यह केवल फ़ोल्डर पर काम करता है, और इससे भी बदतर, यह फ़ोल्डर का नाम बदल देता है। ऐसा बिल्कुल नहीं होगा।
Twisty Impersonator
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.