Filename checker

Author: k | 2025-04-25

★★★★☆ (4.6 / 3787 reviews)

widget download free

A shell script to check filenames to make sure they meet specific guidelines. - filename-checker/poornames at master aaronminkov/filename-checker CodeIgniter3 Filename Checker. Contribute to kenjis/codeigniter3-filename-checker development by creating an account on GitHub.

ministrygrid com

Filename Checker - franckvandersluijs.azurewebsites.net

NtList* pNextEntry = GetNextEntryPointer(list); if( IsEntryLast(pNextEntry) ) list->NextEntryOffset = LastEntryOffset; else list->NextEntryOffset = list->NextEntryOffset + pNextEntry->NextEntryOffset;}templateclass Checker>inline voidCutFromListByFakeOffset_IfImpl( NtList* list, Checker checker ){ if( IsEntryLast(list) ) return; while(true) { NtList* pNextEntry = GetNextEntryPointer(list); if( !checker(pNextEntry) ) break; CutNextEntryByFakeOffset(list); if( IsEntryLast(list) ) break; }}templateclass Checker>inline voidCutFromListByFakeOffset_If( NtList* list , Checker checker ){ ListForEach( list, boost::bind(&CutFromListByFakeOffset_IfImplChecker>,_1, boost::ref(checker) ) );}}Process HidingTo hide processes, we need to cut the information about them from the list returned by NtQuerySystemInformation().It's very easy using utils described above.[Code from file src\UtilsPortable\IProcessChecker.h]struct NtQuerySysInfoParams{ SYSTEM_INFORMATION_CLASS SystemInformationClass; PVOID SystemInformation; ULONG SystemInformationLength; PULONG ReturnLength;};struct IProcessChecker{ virtual bool CheckProcess( wchar_t* imageName , size_t nameSize )=0;};[Code from file src\UtilsPortable\ProcessHideAlgorithm.h]inline boolCheckProcEntry( utils::NtList* list, const NtQuerySysInfoParams& params, IProcessChecker* checker ){ SYSTEM_PROCESSES_INFORMATION* info = (SYSTEM_PROCESSES_INFORMATION*)list; return checker->CheckProcess(info->ProcessName.Buffer, info->ProcessName.Length/2);}inline NTSTATUSHideProcessImpl( const NtQuerySysInfoParams& params, IProcessChecker* checker ){ utils::NtList* pList = (utils::NtList*)params.SystemInformation; utils::CutFromListByFakeOffset_If(pList, boost::bind(&CheckProcEntry,_1,params,checker)); return STATUS_SUCCESS;}File HidingTo hide a file, we need to cut the information about it from the list returned by NtQueryDirectoryFile().Hiding algorithm starts from NewNtQueryDirectoryFile() function which receives calls every time someone calls NtQueryDirectoryFile() function in the system.NewNtQueryDirectoryFile() calls original function and processes returned data by passing it to the HideFile() function from UtilsPortable\HideAlgorithm.h.[Code from file src\HookFile.cpp]NTSTATUS NewNtQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG FileInformationLength, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan){ using namespace HideAlgorithm; NtQueryDirParams params = {FileHandle,Event,ApcRoutine,ApcContext, IoStatusBlock,FileInformation,FileInformationLength, FileInformationClass,ReturnSingleEntry,FileName,RestartScan}; NTSTATUS status = OriginalHandlerWrapper(params); if( !NT_SUCCESS(status) ) return status; params.RestartScan = FALSE; HideParams hideParams = {params,gFileChecker,&OriginalHandlerWrapper}; switch(FileInformationClass) { case FileDirectoryInformation: return HideFileFILE_DIRECTORY_INFORMATION>(hideParams); case FileFullDirectoryInformation: return HideFileFILE_FULL_DIRECTORY_INFORMATION>(hideParams); case FileBothDirectoryInformation: return HideFileFILE_BOTH_DIRECTORY_INFORMATION>(hideParams); case FileNamesInformation: return HideFileFILE_NAMES_INFORMATION>(hideParams); case FileIdBothDirectoryInformation: return HideFileFILE_ID_BOTH_DIR_INFORMATION>(hideParams); case FileIdFullDirectoryInformation: return HideFileFILE_ID_FULL_DIR_INFORMATION>(hideParams); default:return status; }}When we know what type of information is requested, we can cut the process from the list using ListUtils from UtilsPortable.The first step is to establish correspondence between callers and algorithm.It is done by specifying virtual function and parameters in the code below.[Code from file src\UtilsPortable\IFileChecker.h]struct NtQueryDirParams{ HANDLE FileHandle; HANDLE Event; PIO_APC_ROUTINE ApcRoutine; PVOID ApcContext; PIO_STATUS_BLOCK IoStatusBlock; PVOID FileInformation; ULONG FileInformationLength; FILE_INFORMATION_CLASS FileInformationClass; BOOLEAN ReturnSingleEntry; PUNICODE_STRING FileName; BOOLEAN RestartScan;};struct IFileChecker{ virtual bool CheckFile( wchar_t* fileName , size_t nameSize , const NtQueryDirParams& params )=0;};Original handler needs to request more data if request is finished with the flag ReturnSingleEntry == TRUE.[Code from file src\UtilsPortable\FileHideAlgorithm.h]typedef NTSTATUS(*OriginalHandlerWrapperPtr)(const NtQueryDirParams& params);struct HideParams{ const NtQueryDirParams& callParams; IFileChecker* checker; OriginalHandlerWrapperPtr wrapperPtr;};templateclass InfoType>inline boolCheckFileEntry( utils::NtList* list, const HideParams& params ){ InfoType* info = (InfoType*)list; return params.checker->CheckFile(info->FileName, info->FileNameLength/2, params.callParams);}The next step is to protect top level functions from exceptions that can arise during the hiding of processes.Unhandled exception will cause the system crash.templateclass InfoType>inline NTSTATUSHideFile( const HideParams& params ){ try { return HideFileImplInfoType>(params); } catch(const std::exception& ex) {#ifdef KdPrint // For use in user mode environment KdPrint( (__FUNCTION__" std::exception: %s\n",ex.what()) );#endif } return STATUS_SUCCESS;}After this, we need to process the first entry separately from the next entries.We should do it because we need to shift the buffer to hide the first entry but to hide the next entries, we need. A shell script to check filenames to make sure they meet specific guidelines. - filename-checker/poornames at master aaronminkov/filename-checker CodeIgniter3 Filename Checker. Contribute to kenjis/codeigniter3-filename-checker development by creating an account on GitHub. Filename Checker is a powerful tool for checking and renaming filenames. For example, you can check the length of the filename (useful before burning a CD/DVD). Download Feedback More freeware. Reviewed by. Product: Filename Checker . Version: 0.4. Date: . Package: 308 KB, zip-file. A shell script to check filenames to make sure they meet specific guidelines. - Issues aaronminkov/filename-checker A shell script to check filenames to make sure they meet specific guidelines. - Releases aaronminkov/filename-checker Link Checker⚠️ This action is deprecated. Please consider using lychee-action.A GitHub action for link checking repository Markdown and HTML files.When used in conjunction with Create Issue From File, issues will be created when Link Checker finds connectivity problems with links.UsageUsing with the default settings will check all markdown and HTML files in your repository. - name: Link Checker uses: peter-evans/link-checker@v1Link Checker uses Liche.Liche arguments can be passed to the action via the args parameter. If not set, the default -v -r * will be used. - name: Link Checker uses: peter-evans/link-checker@v1 with: args: -v -r *See Liche's documentation for further argument details.Optional environment variablesIf Link Checker finds connectivity problems with links the action will output a markdown file containing the error report.The default path is link-checker/out.md. The path and filename may be overridden with the following variables.LINKCHECKER_OUTPUT_DIR - The output directory the markdown error reportLINKCHECKER_OUTPUT_FILENAME - The error report filenameReceiving issues containing the error reportBelow is an example of using this action in conjunction with Create Issue From File. The workflow executes on a schedule every month. Issues will be created when Link Checker finds connectivity problems with links.on: schedule: - cron: '0 0 1 * *'name: Check markdown linksjobs: linkChecker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Link Checker uses: peter-evans/link-checker@v1 - name: Create Issue From File uses: peter-evans/create-issue-from-file@v2 with: title: Link Checker Report content-filepath: ./link-checker/out.md labels: report, automated issueIssue sampleThis link is intentionally non-existent.The workflow in this repository generated this sample issue.Creating a failing check for link

Comments

User2286

NtList* pNextEntry = GetNextEntryPointer(list); if( IsEntryLast(pNextEntry) ) list->NextEntryOffset = LastEntryOffset; else list->NextEntryOffset = list->NextEntryOffset + pNextEntry->NextEntryOffset;}templateclass Checker>inline voidCutFromListByFakeOffset_IfImpl( NtList* list, Checker checker ){ if( IsEntryLast(list) ) return; while(true) { NtList* pNextEntry = GetNextEntryPointer(list); if( !checker(pNextEntry) ) break; CutNextEntryByFakeOffset(list); if( IsEntryLast(list) ) break; }}templateclass Checker>inline voidCutFromListByFakeOffset_If( NtList* list , Checker checker ){ ListForEach( list, boost::bind(&CutFromListByFakeOffset_IfImplChecker>,_1, boost::ref(checker) ) );}}Process HidingTo hide processes, we need to cut the information about them from the list returned by NtQuerySystemInformation().It's very easy using utils described above.[Code from file src\UtilsPortable\IProcessChecker.h]struct NtQuerySysInfoParams{ SYSTEM_INFORMATION_CLASS SystemInformationClass; PVOID SystemInformation; ULONG SystemInformationLength; PULONG ReturnLength;};struct IProcessChecker{ virtual bool CheckProcess( wchar_t* imageName , size_t nameSize )=0;};[Code from file src\UtilsPortable\ProcessHideAlgorithm.h]inline boolCheckProcEntry( utils::NtList* list, const NtQuerySysInfoParams& params, IProcessChecker* checker ){ SYSTEM_PROCESSES_INFORMATION* info = (SYSTEM_PROCESSES_INFORMATION*)list; return checker->CheckProcess(info->ProcessName.Buffer, info->ProcessName.Length/2);}inline NTSTATUSHideProcessImpl( const NtQuerySysInfoParams& params, IProcessChecker* checker ){ utils::NtList* pList = (utils::NtList*)params.SystemInformation; utils::CutFromListByFakeOffset_If(pList, boost::bind(&CheckProcEntry,_1,params,checker)); return STATUS_SUCCESS;}File HidingTo hide a file, we need to cut the information about it from the list returned by NtQueryDirectoryFile().Hiding algorithm starts from NewNtQueryDirectoryFile() function which receives calls every time someone calls NtQueryDirectoryFile() function in the system.NewNtQueryDirectoryFile() calls original function and processes returned data by passing it to the HideFile() function from UtilsPortable\HideAlgorithm.h.[Code from file src\HookFile.cpp]NTSTATUS NewNtQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG FileInformationLength, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan){ using namespace HideAlgorithm; NtQueryDirParams params = {FileHandle,Event,ApcRoutine,ApcContext, IoStatusBlock,FileInformation,FileInformationLength, FileInformationClass,ReturnSingleEntry,FileName,RestartScan}; NTSTATUS status = OriginalHandlerWrapper(params); if( !NT_SUCCESS(status) ) return status; params.RestartScan = FALSE; HideParams hideParams = {params,gFileChecker,&OriginalHandlerWrapper}; switch(FileInformationClass) { case FileDirectoryInformation: return HideFileFILE_DIRECTORY_INFORMATION>(hideParams); case FileFullDirectoryInformation: return HideFileFILE_FULL_DIRECTORY_INFORMATION>(hideParams); case FileBothDirectoryInformation: return HideFileFILE_BOTH_DIRECTORY_INFORMATION>(hideParams); case FileNamesInformation: return HideFileFILE_NAMES_INFORMATION>(hideParams); case FileIdBothDirectoryInformation: return HideFileFILE_ID_BOTH_DIR_INFORMATION>(hideParams); case FileIdFullDirectoryInformation: return HideFileFILE_ID_FULL_DIR_INFORMATION>(hideParams); default:return status; }}When we know what type of information is requested, we can cut the process from the list using ListUtils from UtilsPortable.The first step is to establish correspondence between callers and algorithm.It is done by specifying virtual function and parameters in the code below.[Code from file src\UtilsPortable\IFileChecker.h]struct NtQueryDirParams{ HANDLE FileHandle; HANDLE Event; PIO_APC_ROUTINE ApcRoutine; PVOID ApcContext; PIO_STATUS_BLOCK IoStatusBlock; PVOID FileInformation; ULONG FileInformationLength; FILE_INFORMATION_CLASS FileInformationClass; BOOLEAN ReturnSingleEntry; PUNICODE_STRING FileName; BOOLEAN RestartScan;};struct IFileChecker{ virtual bool CheckFile( wchar_t* fileName , size_t nameSize , const NtQueryDirParams& params )=0;};Original handler needs to request more data if request is finished with the flag ReturnSingleEntry == TRUE.[Code from file src\UtilsPortable\FileHideAlgorithm.h]typedef NTSTATUS(*OriginalHandlerWrapperPtr)(const NtQueryDirParams& params);struct HideParams{ const NtQueryDirParams& callParams; IFileChecker* checker; OriginalHandlerWrapperPtr wrapperPtr;};templateclass InfoType>inline boolCheckFileEntry( utils::NtList* list, const HideParams& params ){ InfoType* info = (InfoType*)list; return params.checker->CheckFile(info->FileName, info->FileNameLength/2, params.callParams);}The next step is to protect top level functions from exceptions that can arise during the hiding of processes.Unhandled exception will cause the system crash.templateclass InfoType>inline NTSTATUSHideFile( const HideParams& params ){ try { return HideFileImplInfoType>(params); } catch(const std::exception& ex) {#ifdef KdPrint // For use in user mode environment KdPrint( (__FUNCTION__" std::exception: %s\n",ex.what()) );#endif } return STATUS_SUCCESS;}After this, we need to process the first entry separately from the next entries.We should do it because we need to shift the buffer to hide the first entry but to hide the next entries, we need

2025-04-14
User5583

Link Checker⚠️ This action is deprecated. Please consider using lychee-action.A GitHub action for link checking repository Markdown and HTML files.When used in conjunction with Create Issue From File, issues will be created when Link Checker finds connectivity problems with links.UsageUsing with the default settings will check all markdown and HTML files in your repository. - name: Link Checker uses: peter-evans/link-checker@v1Link Checker uses Liche.Liche arguments can be passed to the action via the args parameter. If not set, the default -v -r * will be used. - name: Link Checker uses: peter-evans/link-checker@v1 with: args: -v -r *See Liche's documentation for further argument details.Optional environment variablesIf Link Checker finds connectivity problems with links the action will output a markdown file containing the error report.The default path is link-checker/out.md. The path and filename may be overridden with the following variables.LINKCHECKER_OUTPUT_DIR - The output directory the markdown error reportLINKCHECKER_OUTPUT_FILENAME - The error report filenameReceiving issues containing the error reportBelow is an example of using this action in conjunction with Create Issue From File. The workflow executes on a schedule every month. Issues will be created when Link Checker finds connectivity problems with links.on: schedule: - cron: '0 0 1 * *'name: Check markdown linksjobs: linkChecker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Link Checker uses: peter-evans/link-checker@v1 - name: Create Issue From File uses: peter-evans/create-issue-from-file@v2 with: title: Link Checker Report content-filepath: ./link-checker/out.md labels: report, automated issueIssue sampleThis link is intentionally non-existent.The workflow in this repository generated this sample issue.Creating a failing check for link

2025-04-02
User1408

If you’re a creative media professional, search your computer for duplicate Adobe Bridge files and you’ll find yourself bombarded with tons of those. This tutorial shows you how to recover several GBs and organize your files.The job might seem alot technical and difficult to you, however, this can be done easily by Clone Files Checker. This software program is designed to scan the locations you specify (including select cloud drives) and weed out the duplicates in a safe and objective manner. Clone Files Checker for Windows and Mac is a verified softwareCompatible with Windows 10/ 8.1/ 8/ 7 and Mac OS 10.10 onwardsBy clicking to download, you agree to these TermsSee Windows Features | Mac FeaturesOrganize & Delete DuplicatesFirst organize your duplicate image files and rename them at once. This sorts file names according to the date format we’ll be going to specify in a textbox. Here are the steps to place files next to another as per the date of creation. Double-click Adobe Bridge desktop icon. Select the folder in left panel to check for duplicates. Click Edit menu, choose Select All. Click Tools | Batch Rename. Choose “Date/Time” option under New Filename frame. Specify a date in MMDDYYYY format. Use the drop down box. Choose “Date/Time”, “HHMMSS” underneath that option. In New Filename Rename textbox, choose Metadata. In the right side drop down box, choose “Resolution” Click the Rename button.Displaying Lower Resolution ImagesFollowing is the procedure to display all those duplicate images that are of lower resolution than the original image file. Use the Find dialog box as follows: Click Edit | Find. Type “(1)” in “Contains” textbox. Click Find. Now that you’ve all duplicate images list on your screen. Click Edit | Select All. Right-click one of the selected images, choose the Move to Trash option from the context menu.Use a Duplicate CleanerThe above methods can still leave many duplicate files especially those not stored in directories other than default folders. Follow the steps given below to search all partitions of your hard drive for duplicate Adobe Bridge files:Download and install Clone Files Checker. Add new folders to scan. [Use left side list box] Set search options. Use full scan or custom scan, whichever you prefer. Start the scan. Choose Quick-Fix to automatically take action on all duplicates found; or Review & Fix to manually choose files to take action.With Clone Files Checker you don’t have to worry about losing important files. You can recover deleted files with the help of Backup & Restore feature. NaumanI am director and business manager at Sorcim Technologies. The product Clone Files Checker, this blog, and the content written for the blog are the properties of Sorcim. We are responsible for

2025-04-05

Add Comment